home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-02-21 | 138.7 KB | 2,824 lines |
-
-
-
-
-
-
-
-
-
-
- Introduction
- to
- Administration
- of an
- Internet-based
- Local Network
-
-
-
- C R
-
- C S
- Computer Science Facilities Group
- C I
-
- L S
-
-
- RUTGERS
- The State University of New Jersey
- Center for Computers and Information Services
- Laboratory for Computer Science Research
-
-
- 24 July 1988
-
- This is an introduction for people who intend to set up or administer
- a network based on the Internet networking protocols (TCP/IP).
-
- Copyright (C) 1988, Charles L. Hedrick. Anyone may reproduce this
- document, in whole or in part, provided that: (1) any copy or
- republication of the entire document must show Rutgers University as
- the source, and must include this notice; and (2) any other use of
- this material must reference this manual and Rutgers University, and
- the fact that the material is copyright by Charles Hedrick and is used
- by permission.
-
-
-
- Unix is a trademark of AT&T Technologies, Inc.
-
-
-
- Table of Contents
-
-
- 1. The problem 1
- 2. Routing and Addressing 2
- 3. Choosing an addressing structure 3
- 3.1 Should you subdivide your address space? 5
- 3.2 Subnets vs. multiple network numbers 5
- 3.3 How to allocate subnet or network numbers 6
- 3.3.1 Dealing with multiple "virtual" subnets on one 7
- network
- 3.4 Choosing an address class 8
- 4. Setting up routing for an individual computer 9
- 4.1 How datagrams are routed 11
- 4.2 Fixed routes 13
- 4.3 Routing redirects 14
- 4.4 Other ways for hosts to find routes 16
- 4.4.1 Spying on Routing 16
- 4.4.2 Proxy ARP 17
- 4.4.3 Moving to New Routes After Failures 22
- 5. Bridges and Gateways 24
- 5.1 Alternative Designs 25
- 5.1.1 A mesh of point to point lines 26
- 5.1.2 Circuit switching technology 27
- 5.1.3 Single-level networks 27
- 5.1.4 Mixed designs 28
- 5.2 An introduction to alternative switching technologies 29
- 5.2.1 Repeaters 29
- 5.2.2 Bridges and gateways 30
- 5.2.3 More about bridges 32
- 5.2.4 More about gateways 34
- 5.3 Comparing the switching technologies 34
- 5.3.1 Isolation 35
- 5.3.2 Performance 36
- 5.3.3 Routing 37
- 5.3.4 Network management 39
- 5.3.5 A final evaluation 41
- 5.4 Configuring routing for gateways 44
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- i
-
-
-
- This document is intended to help people who planning to set up a new
- network based on the Internet protocols, or to administer an existing
- one. It assumes a basic familiarity with the TCP/IP protocols,
- particularly the structure of Internet addresses. A companion paper,
- "Introduction to the Internet Protocols", may provide a convenient
- introduction. This document does not attempt to replace technical
- documentation for your specific TCP/IP implementation. Rather, it
- attempts to give overall background that is not specific to any
- particular implementation. It is directed specifically at networks of
- "medium" complexity. That is, it is probably appropriate for a
- network involving several dozen buildings. Those planning to manage
- larger networks will need more preparation than you can get by reading
- this document.
-
- In a number of cases, commands and output from Berkeley Unix are
- shown. Most computer systems have commands that are similar in
- function to these. It seemed more useful to give some actual examples
- that to limit myself to general talk, even if the actual output you
- see is slightly different.
-
-
-
- 1. The problem
-
-
- This document will emphasize primarily "logical" network architecture.
- There are many documents and articles in the trade press that discuss
- actual network media, such as Ethernet, Token Ring, etc. What is
- generally not made clear in these articles is that the choice of
- network media is generally not all that critical for the overall
- design of a network. What can be done by the network is generally
- determined more by the network protocols supported, and the quality of
- the implementations. In practice, media are normally chosen based on
- purely pragmatic grounds: what media are supported by the particular
- types of computer that you have to connect. Generally this means that
- Ethernet is used for medium-scale systems, Ethernet or a network based
- on twisted-pair wiring for micro networks, and specialized high-speed
- networks (typically token ring) for campus-wide backbones, and for
- local networks involving super-computer and other very high-
- performance applications.
-
- Thus this document assumes that you have chosen and installed
- individual networks such as Ethernet or token ring, and your vendor
- has helped you connect your computers to these network. You are now
- faced with the interrelated problems of
-
- - configuring the software on your computers
-
- - finding a way to connect individual Ethernets, token rings, etc.,
- to form a single coherent network
-
- - connecting your networks to the outside world
-
- My primary thesis in this document is that these decisions require a
- bit of advance thought. In fact, most networks need an
- 1
-
-
-
- "architecture". This consists of a way of assigning addresses, a way
- of doing routing, and various choices about how hosts interact with
- the network. These decisions need to be made for the entire network,
- preferably when it is first being installed.
-
-
-
- 2. Routing and Addressing
-
-
- Many of the decisions that you need to make in setting up TCP/IP
- depend upon routing, so it will be best to give a bit of background on
- that topic now. I will return to routing in a later section when
- discussing gateways and bridges. In general, IP datagrams pass
- through many networks while they are going between the source and
- destination. Here's a typical example. (Addresses used in the
- examples are taken from Rutgers University.)
-
- network 1 network 2 network 3
- 128.6.4 128.6.21 128.121
- ============================ ========== ================
- | | | | | | |
- ___|______ _____|____ __|____|__ __|____|____ ___|________
- 128.6.4.2 128.6.4.3 128.6.4.1 128.6.21.1 128.121.50.2
- 128.6.21.2 128.121.50.1
- __________ __________ __________ ____________ ____________
- computer A computer B gateway R gateway S computer C
-
-
- This diagram shows three normal computer systems, two gateways, and
- three networks. The networks might be Ethernets, token rings, or any
- other sort. Network 2 could even be a single point to point line
- connecting gateways R and S.
-
- Note that computer A can send datagrams to computer B directly, using
- network 1. However it can't reach computer C directly, since they
- aren't on the same network. There are several ways to connect
- separate networks. This diagram assumes that gateways are used. (In a
- later section, we'll look at an alternative.) In this case, datagrams
- going between A and C must be sent through gateway R, network 2, and
- gateway S. Every computer that uses TCP/IP needs appropriate
- information and algorithms to allow it to know when datagrams must be
- sent through a gateway, and to choose an appropriate gateway.
-
- Routing is very closely tied to the choice of addresses. Note that
- the address of each computer begins with the number of the network
- that it's attached to. Thus 128.6.4.2 and 128.6.4.3 are both on
- network 128.6.4. Next, notice that gateways, whose job is to connect
- networks, have an address on each of those networks. For example,
- gateway R connects networks 128.6.4 and 128.6.21. Its connection to
- network 128.6.4 has the address 128.6.4.1. Its connection to network
- 128.6.21 has the address 128.6.21.2.
-
- Because of this association between addresses and networks, routing
- decisions can be based strictly on the network number of the
- 2
-
-
-
- destination. Here's what the routing information for computer A might
- look like:
-
- network gateway metric
-
- 128.6.4 none 0
- 128.6.21 128.6.4.1 1
- 128.121 128.6.4.1 2
-
- From this table, computer A can tell that datagrams for computers on
- network 128.6.4 can be sent directly, and datagrams for computers on
- networks 128.6.21 and 128.121 need to be sent to gateway R for
- forwarding. The "metric" is used by some routing algorithms as a
- measure of how far away the destination is. In this case, the metric
- simply indicates how many gateways the datagram has to go through.
- (This is often referred to as a "hop count".)
-
- When computer A is ready to send a datagram, it examines the
- destination address. The network number is taken from the beginning
- of the address and looked up in the routing table. The table entry
- indicates whether the packet should be sent directly to the
- destination or to a gateway.
-
- Note that a gateway is simply a computer that is connected to two
- different networks, and is prepared to forward packets between them.
- In many cases it is most efficient to use special-purpose equipment
- designed for use as a gateway. However it is perfectly possible to
- use ordinary computers as gateways, as long as they have more than one
- network interface, and their software is prepared to forward
- datagrams. Most major TCP/IP implementations (even for
- microcomputers) are designed to let you use your computer as a
- gateway. However some of this software has limitations that can cause
- trouble for your network.
-
-
-
- 3. Choosing an addressing structure
-
-
- The first comment to make about addresses is a warning: Before you
- start using a TCP/IP network, you must get one or more official
- network numbers. TCP/IP addresses look like this: 128.6.4.3. This
- address is used by one computer at Rutgers University. The first part
- of it, 128.6, is a network number, allocated to Rutgers by a central
- authority. Before you start allocating addresses to your computers,
- you must get an official network number. Unfortunately, some people
- set up networks using either a randomly-chosen number, or a number
- taken from examples in vendor documentation. While this may work in
- the short run, it is a very bad idea for the long run. Eventually,
- you will want to connect your network to some other organization's
- network. Even if your organization is highly secret and very
- concerned about security, somewhere in your organization there is
- going to be a research computer that ends up being connected to a
- nearby university. That university will probably be connected to a
- large-scale national network. As soon as one of your datagrams
- 3
-
-
-
- escapes your local network, the organization you are talking to is
- going to become very confused, because the addresses that appear in
- your datagrams are probably officially allocated to someone else.
-
- The solution to this is simple: get your own network number from the
- beginning. It costs nothing. If you delay it, then sometime years
- from now you are going to be faced with the job of changing every
- address on a large network. Network numbers are currently assigned by
- the DDN Network Information Center, SRI International, 333 Ravenswood
- Avenue, Menlo Park, California 94025 (telephone: 800-235-3155). You
- can get a network number no matter what your network is being used
- for. You do not need authorization to connect to the Defense Data
- Network in order to get a number. The main piece of information that
- will be needed when you apply for a network number is that address
- class that you want. See below for a discussion of this.
-
- In many ways, the most important decision you have to make in setting
- up a network is how you will assign Internet addresses to your
- computers. This choice should be made with a view of how your network
- is likely to grow. Otherwise, you will find that you have to change
- addresses. When you have several hundred computers, address changes
- can be nearly impossible.
-
- Addresses are critical because Internet datagrams are routed on the
- basis of their address. For example, addresses at Rutgers University
- have a 2-level structure. A typical address is 128.6.4.3. 128.6 is
- assigned to Rutgers University by a central authority. As far as the
- outside world is concerned, 128.6 is a single network. Other
- universities send any packet whose address begins with 128.6 to the
- nearest Rutgers gateway. However within Rutgers, we divide up our
- address space into "subnets". We use the next 8 bits of address to
- indicate which subnet a computer belongs to. 128.6.4.3 belongs to
- subnet 128.6.4. Generally subnets correspond to physical networks,
- e.g. separate Ethernets, although as we will see later there can be
- exceptions. Systems inside Rutgers, unlike those outside, contain
- information about the Rutgers subnet structure. So once a packet for
- 128.6.4.3 arrives at Rutgers, the Rutgers network will route it to the
- departmental Ethernet, token ring, or whatever, that has been assigned
- subnet number 128.6.4.
-
- When you start a network, there are several addressing decisions that
- face you:
-
- - Do you subdivide your address space?
-
- - If so, do you use subnets or class C addresses?
-
- - You do you allocate subnets or class C networks?
-
- - How big an address space do you need?
-
-
-
-
-
- 4
-
-
-
- 3.1 Should you subdivide your address space?
-
-
- It is not necessary to use subnets at all. There are network
- technologies that allow an entire campus or company to act as a single
- large logical Ethernet, so that no internal routing is necessary. If
- you use this technology, then you do not need to subdivide your
- address space. In that case, the only decision you have to make is
- what class address to apply for. However we recommend using either a
- subnet approach or some other method of subdividing your address space
- in all cases:
-
- - In section 5.2 we will argue that internal gateways are desirable
- for networks of any degree of complexity.
-
- - Even if you do not need gateways now, you may find later that you
- need to use them. Thus it probably makes sense to assign
- addresses as if each Ethernet or token ring was going to be a
- separate subnet. This will allow for conversion to real subnets
- later if it proves necessary.
-
- - For network maintenance purposes, it is convenient to have
- addresses whose structure corresponds to the structure of the
- network. That is, when you see a stray packet from system
- 128.6.4.3, it is nice to know that all addresses beginning with
- 128.6.4 are in a particular building.
-
-
-
- 3.2 Subnets vs. multiple network numbers
-
-
- Suppose that you have been convinced that it's a good idea to impose
- some structure on your addresses. The next question is what that
- structure should be. There are two basic approaches. One is subnets.
- The other is multiple network numbers.
-
- The Internet standards specify what constitutes a network number. For
- numbers beginning with 128 through 191 (the most common numbers these
- days), the first two octets form the network number. E.g. in
- 140.3.50.1, 140.3 is the network number. Network numbers are assigned
- to a particular organization. What you do with the next two octets is
- up to you. You could choose to make the next octet be a subnet
- number, or you could use some other scheme entirely. Gateways within
- your organization will be set up to know the subnetting scheme that
- you are using. However outside your organization, no one will know
- that 140.3.50 is one subnet and 140.3.51 is another. They will simply
- know that 140.3 is your organization. Unfortunately, this ability to
- add additional structure to the address via subnets was not present in
- the original TCP/IP specifications. Thus some software is incapable
- of being told about subnets.
-
- If enough of the software that you are using has this problem, it may
- be impractical for you to use subnets. Some organizations have used a
- different approach. It is possible for an organization to apply for
- 5
-
-
-
- several network numbers. Instead of dividing a single network number,
- say 140.3, into several subnets, e.g. 140.3.1 through 140.3.10, you
- could apply for 10 different network numbers. Thus you might be
- assigned the range 140.3 through 140.12. All TCP/IP software will
- know that these are different network numbers.
-
- While using separate network numbers will work just fine within your
- organization, it has two very serious disadvantages. The first, and
- less serious, is that it wastes address space. There are only about
- 16,000 possible class B addresses. We cannot afford to waste 10 of
- them on your organization, unless it is very large. This objection is
- less serious because you would normally ask for class C addresses for
- this purpose, and there are about 2 million possible class C
- addresses.
-
- The more serious problem with using several network numbers rather
- than subnets is that it overloads the routing tables in the rest of
- the Internet. As mentioned above, when you divide your network number
- into subnets, this division is known within your organization, but not
- outside it. Thus systems outside your organization need only one
- entry in their tables in order to be able to reach you. E.g. other
- universities have entries in their routing tables for 128.6, which is
- the Rutgers network number. If you use a range of network numbers
- instead of subnets, that division will be visible to the entire
- Internet. If we used 128.6 through 128.16 instead of subdividing
- 128.6, other universities would need entries for each of those network
- numbers in their routing tables. As of this writing the routing
- tables in many of the national networks are exceeding the size of the
- current routing technology. It would be considered extremely
- unfriendly for any organization to use more than one network number.
- This may not be a problem if your network is going to be completely
- self-contained, or if only one small piece of it will be connected to
- the outside world. Nevertheless, most TCP/IP experts strongly
- recommend that you use subnets rather than multiple networks. The
- only reason for considering multiple networks is to deal with software
- that cannot handle subnets. This was a problem a few years ago, but
- is currently less serious. As long as your gateways can handle
- subnets, you can deal with a few individual computers that cannot by
- using "proxy ARP" (see below).
-
-
-
- 3.3 How to allocate subnet or network numbers
-
-
- Now that you have decided to use subnets or multiple network numbers,
- you have to decide how to allocate them. Normally this is fairly
- easy. Each physical network, e.g. Ethernet or token ring, is assigned
- a separate subnet or network number. However you do have some
- options.
-
- In some cases it may make sense to assign several subnet numbers to a
- single physical network. At Rutgers we have a single Ethernet that
- spans three buildings, using repeaters. It is very clear to us that
- as computers are added to this Ethernet, it is going to have to be
- 6
-
-
-
- split into several separate Ethernets. In order to avoid having to
- change addresses when this is done, we have allocated three different
- subnet numbers to this Ethernet, one per building. (This would be
- handy even if we didn't plan to split the Ethernet, just to help us
- keep track of where computers are.) However before doing this, make
- very sure that the software on all of your computers can handle a
- network that has three different network numbers on it.
-
- You also have to choose a "subnet mask". This is used by the software
- on your systems to separate the subnet from the rest of the address.
- So far we have always assumed that the first two octets are the
- network number, and the next octet is the subnet number. For class B
- addresses, the standards specify that the first two octets are the
- network number. However we are free to choose the boundary between
- the subnet number and the rest of the address. It's very common to
- have a one-octet subnet number, but that's not the only possible
- choice. Let's look again at a class B address, e.g. 128.6.4.3. It is
- easy to see that if the third octet is used for a subnet number, there
- are 256 possible subnets and within each subnet there are 256 possible
- addresses. (Actually, the numbers are more like 254, since it is
- generally a bad idea to use 0 or 255 for subnet numbers or addresses.)
- Suppose you know that you will never have more than 128 computers on a
- given subnet, but you are afraid you might need more than 256 subnets.
- (For example, you might have a campus with lots of small buildings.)
- In that case, you could define 10 bits for the subnet number, leaving
- 6 bits for addresses within each subnet. This choice is expressed by
- a bit mask, using ones for the bits used by the network and subnet
- number, and 0's for the bits used for individual addresses. Our
- normal subnet choice is given as 255.255.255.0. If we chose 10 bit
- subnet numbers and 6 bit addresses, the subnet mask would be
- 255.255.255.192.
-
- Generally it is possible to specify the subnet mask for each computer
- as part of configuring its TCP/IP software. The TCP/IP protocols also
- allow for computers to send a query asking what the subnet mask is.
- If your network supports broadcast queries, and there is at least one
- computer or gateway on the network that knows the subnet mask, it may
- be unnecessary to set it on the other computers. (This capability
- brings with it a whole new set of possible problems. One well-known
- TCP/IP implementation would answer with the wrong subnet mask when
- queried, thus leading causing every other computer on the network to
- be misconfigured.)
-
-
-
- 3.3.1 Dealing with multiple "virtual" subnets on one network
-
-
- Most software is written under the assumption that every computer on
- the local network has the same subnet number. When traffic is being
- sent to a machine with a different subnet number, the software will
- generally expect to find a gateway to handle forwarding to that
- subnet. Let's look at the implications. Suppose subnets 128.6.19 and
- 128.6.20 are on the same Ethernet. Consider the way things look from
- the point of view of a computer with address 128.6.19.3. It will have
- 7
-
-
-
- no problem sending to other machines with addresses 128.6.19.x. They
- are on the same subnet, and so our computer will know to send directly
- to them on the local Ethernet. However suppose it is asked to send a
- packet to 128.6.20.2. Since this is a different subnet, most software
- will expect to find a gateway that handles forwarding between the two
- subnets. Of course there isn't a gateway between subnets 128.6.19 and
- 128.6.20, since they are on the same Ethernet. Thus it must be
- possible to tell your software that 128.6.20 is actually on the same
- Ethernet.
-
- For the most common TCP/IP implementations, it is possible to deal
- with more than one subnet on a network. For example, Berkeley Unix
- allows you to define gateways using a command "route add". Suppose
- that you get from subnet 128.6.19 to subnet 128.6.4 using a gateway
- whose address is 128.6.19.1. You would use the command
-
- route add 128.6.4.0 128.6.19.1 1
-
- This says that to reach subnet 128.6.4, traffic should be sent via the
- gateway at 128.6.19.1, and that the route only has to go through one
- gateway. The "1" is referred to as the "routing metric". If you use
- a metric of 0, you are saying that the destination subnet is on the
- same network, and no gateway is needed. In our example, on system
- 128.6.19.3, you would use
-
- route add 128.6.20.0 128.6.19.1 0
-
- The actual address used in place of 128.6.19.1 is irrelevant. The
- metric of 0 says that no gateway is actually going to be used, so the
- gateway address is not used. However it must be a legal address on
- the local network.
-
- Note that the commands in this section are simply examples. You should
- look in the documentation for your particular implementation to see
- how to configure your routing.
-
-
-
- 3.4 Choosing an address class
-
-
- When you apply for an official network number, you will be asked what
- class of network number you need. The possible answers are A, B, and
- C. This affects how large an address space you will be allocated.
- Class A addresses are one octet long, class B addresses are 2 octets,
- and class C addresses are 3 octets. This represents a tradeoff:
- there are a lot more class C addresses than class A addresses, but the
- class C addresses don't allow as many hosts. The idea was that there
- would be a few very large networks, a moderate number of medium-size
- ones, and a lot of mom-and-pop stores that would have small networks.
- Here is a table showing the distinction:
-
- class range of first octet network rest possible addresses
- A 1 - 126 p q.r.s 16777214
- B 128 - 191 p.q r.s 65534
- 8
-
-
-
- C 192 - 223 p.q.r s 254
-
- For example network 10, a class A network, has addresses between
- 10.0.0.1 and 10.255.255.254. So it allows 254**3, or about 16 million
- possible addresses. (Actually, network 10 has allocated addresses
- where some of the octets are zero, so there are a few more networks
- possible.) Network 192.12.88, a class C network has hosts between
- 192.12.88.1 and 128.12.88.254, i.e. 254 possible hosts.
-
- In general, you will be expected to choose the lowest class that will
- provide you with enough addresses to handle your growth over the next
- few years. In general organizations that have computers in many
- buildings will probably need and be able to get a class B address,
- assuming that they are going to use subnetting. (If you are going to
- use many separate network numbers, you would ask for a number of class
- C addresses.) Class A addresses are normally used only for large
- public networks and for a few very large corporate networks.
-
-
-
- 4. Setting up routing for an individual computer
-
-
- All TCP/IP implementations require some configuration for each host.
- In some cases this is done in a "system generation". In other cases,
- various startup and configuration files must be set up on the system.
- Still other systems get configuration information across the network
- from a "server". While the details differ, the same kinds of
- information need to be supplied for most implementations. This
- includes
-
- - parameters describing the specific machine, such as its Internet
- address.
-
- - parameters describing the network, such as the subnet mask (if
- any)
-
- - routing software and the tables that drive it
-
- - startup of various programs needed to handle network tasks
-
- Before a machine is installed on your network, a coordinator should
- assign it a host name and Internet address. If the machine has more
- than one network interface, you must assign a separate Internet
- address for each. (In most cases, the same host name can be used.
- The name goes with the machine as a whole, whereas the address is
- associated with the connection to a specific network.) The address
- should begin with the network number for the network to which it is to
- be attached. We recommend that you assign addresses starting from 1.
- Should you find that you need more subnets than your current subnet
- mask allows, you may later need to expand the subnet mask to use more
- bits. If all addresses use small numbers, this will be possible.
-
- Generally the Internet address must be specified individually in a
- configuration file on each computer. However some computers
- 9
-
-
-
- (particularly those without permanent disks on which configuration
- information could be stored) find out their Internet address by
- sending a broadcast request over the network. In that case, you will
- have to make sure that some other system is configured to answer the
- request. When a system asks for its Internet address, enough
- information must be put into the request to allow another system to
- recognize it and to send a response back. For Ethernet systems,
- generally the request will include the Ethernet address of the
- requesting system. Ethernet addresses are assigned by the computer
- manufacturers, and are guaranteed to be unique. Thus they are a good
- way of identifying the computer. And of course the Ethernet address
- is also needed in order to send the response back. If it is used as
- the basis for address lookup, the system that is to answer the request
- will need a table of Ethernet addresses and the corresponding Internet
- address. The only problem in constructing this table will be finding
- the Ethernet address for each computer. Generally, computers are
- designed so that they print the Ethernet address on the console
- shortly after being turned on. However in some cases you may have to
- type a command that displays information about the Ethernet interface.
-
- Generally the subnet mask should be specified in a configuration file
- associated with the computer. (For Unix systems, the "ifconfig"
- command is used to specify both the Internet address and subnet mask.)
- However there are provisions in the IP protocols for a computer to
- broadcast a request asking for the subnet mask. The subnet mask is an
- attribute of the network. That is, it is the same for all computers
- on a given subnet. Thus there is no separate subnet table
- corresponding to the Ethernet/Internet address mapping table used to
- answer address queries. Generally any machine on the network that
- believes it knows the subnet mask will answer any query about the
- subnet mask. For that reason, an incorrect subnet mask setting on one
- machine can cause confusion throughout the network.
-
- Normally the configuration files do roughly the following things:
-
- - enable each of the network interfaces (Ethernet interface, serial
- lines, etc.) Normally this involves specifying an Internet
- address and subnet mask for each, as well as other options that
- will be described in your vendor's documentation.
-
- - establish network routing information, either by commands that
- add fixed routes, or by starting a program that obtains them
- dynamically.
-
- - turn on the name server (used for looking up names and finding
- the corresponding Internet address -- see the section on the
- domain system in the Introduction to TCP/IP).
-
- - set various other information needed by the system software, such
- as the name of the system itself.
-
- - start various "daemons". These are programs that provide network
- services to other systems on the network, and to users on this
- system.
-
- 10
-
-
-
- It is not practical to document these steps in detail, since they
- differ for each vendor. This section will concentrate on a few issues
- where your choice will depend upon overall decisions about how your
- network is to operate. These overall network policy decisions are
- often not as well documented by the vendors as the details of how to
- start specific programs. Note that some care will be necessary to
- integrate commands that you add for routing, etc., into the startup
- sequence at the right point. Some of the most mysterious problems
- occur when network routing is not set up before a program needs to
- make a network query, or when a program attempts to look up a host
- name before the name server has finished loading all of the names from
- a master name server.
-
-
-
- 4.1 How datagrams are routed
-
-
- If your system consists of a single Ethernet or similar medium, you do
- not need to give routing much attention. However for more complex
- systems, each of your machines needs a routing table that lists a
- gateway and interface to use for every possible destination network.
- A simple example of this was given at the beginning of this section.
- However it is now necessary to describe the way routing works in a bit
- more detail. On most systems, the routing table looks something like
- the following. (This example was taken from a system running Berkeley
- Unix, using the command "netstat -n -r". Some columns containing
- statistical information have been omitted.)
-
- Destination Gateway Flags Interface
-
- 128.6.5.3 128.6.7.1 UHGD il0
- 128.6.5.21 128.6.7.1 UHGD il0
- 127.0.0.1 127.0.0.1 UH lo0
- 128.6.4 128.6.4.61 U pe0
- 128.6.6 128.6.7.26 U il0
- 128.6.7 128.6.7.26 U il0
- 128.6.2 128.6.7.1 UG il0
- 10 128.6.4.27 UG pe0
- 128.121 128.6.4.27 UG pe0
- default 128.6.4.27 UG pe0
-
- The example system is connected to two Ethernets:
-
- controller network address other networks
- il0 128.6.7 128.6.7.26 128.6.6
- pe0 128.6.4 128.6.4.61 none
-
- The first column shows the designation for the controller hardware
- that connects the computer to that Ethernet. (This system happens to
- have controllers from two different vendors. The first one is made by
- Interlan, the second by Pyramid.) The second column is the network
- number for the network. The third column is this computer's Internet
- address on that network. The last column shows other subnets that
- share the same physical network.
- 11
-
-
-
- Now let's look at the routing table. For the moment, let us ignore
- the first 3 lines. The majority of the table consists of a set of
- entries describing networks. For each network, the other three
- columns show where to send datagrams destined for that network. If
- the "G" flag is present in the third column, datagrams for that
- network must be sent through a gateway. The second column shows the
- address of the gateway to be used. If the "G" flag is not present,
- the computer is directly connected to the network in question. So
- datagrams for that network should be sent using the controller shown
- in the third column. The "U" flag in the third column simply
- indicates that the route specified by that line is up, i.e. that no
- errors have occured indicating that the path is unusable.
-
- The first 3 lines show "host routes", indicated by the "H" flag in
- column three. Routing tables normally have entries for entire
- networks or subnets. For example, the entry
-
- 128.6.2 128.6.7.1 UG il0
-
- indicates that datagrams for any computer on network 128.6.2 (i.e.
- addresses 128.6.2.1 through 128.6.2.254) should be sent to gateway
- 128.6.7.1 for forwarding. However sometimes routes apply only to a
- specific computer, rather than to a whole network. In that case, a
- host route is used. The first column then shows a complete address,
- and the "H" flag is present in column 3. E.g. the entry
-
- 128.6.5.21 128.6.7.1 UHGD il0
-
- indicates that datagrams for the specific address 128.6.5.21 should be
- sent to the gateway 128.6.7.1. As with network routes, the "G" flag
- is used for routes that involve a gateway. The "D" flag indicates
- that the route was added dynamically, based on an ICMP redirect
- message from a gateway. (See below for details.)
-
- The following route is special:
-
- 127.0.0.1 127.0.0.1 UH lo0
-
- 127.0.0.1 is the address of the "loopback device". This is a dummy
- software module. Any datagram sent out through that "device" appears
- immediately as input. It can be used for testing. The loopback
- address is also handy for sending queries to programs that are
- designed to respond to network queries, but happen to be running on
- the same computer. (Why bother to use your network to talk to a
- program that is on the same machine you are?)
-
- Finally, there are "default" routes, e.g.
-
- default 128.6.4.27 UG pe0
-
- This route is used for datagrams that don't match any other entry. In
- this case, they are sent to a gateway with address 128.6.4.27.
-
- In most systems, datagrams are routed by looking up the destination
- address in a table such as the one just described. If the address
- 12
-
-
-
- matches a specific host route, then that is used. Otherwise, if it
- matches a network route, that is used. If no other route works, the
- default is used. If there is no default, normally the user gets an
- error message such as "network is unreachable".
-
- The following sections will describe several ways of setting up these
- routing tables. Generally, the actual operation of sending packets
- doesn't depend upon which method you use to set up the routes. When a
- packet is to be sent, its destination is looked up in the table. The
- different routing methods are simply more and less sophisticated ways
- of setting up and maintaining the tables.
-
-
-
- 4.2 Fixed routes
-
-
- The simplest way of doing routing is to have your configuration
- contain commands to set up the routing table at startup, and then
- leave it alone. This method is practical for relatively small
- networks, particularly if they don't change very often.
-
- Most computers automatically set up some routing entries for you.
- Unix will add an entry for the networks to which you are directly
- connected. For example, your startup file might contain the commands
-
- ifconfig ie0 128.6.4.4 netmask 255.255.255.0
- ifconfig ie1 128.6.5.35 netmask 255.255.255.0
-
- These specify that there are two network interfaces, and your
- addresses on them. The system will automatically create routing table
- entries
-
- 128.6.4 128.6.4.4 U ie0
- 128.6.5 128.6.5.35 U ie1
-
- These specify that datagrams for the local subnets, 128.6.4 and
- 128.6.5, should be sent out the corresponding interface.
-
- In addition to these, your startup files would contain commands to
- define routes to whatever other networks you wanted to reach. For
- example,
-
- route add 128.6.2.0 128.6.4.1 1
- route add 128.6.6.0 128.6.5.35 0
-
- These commands specify that in order to reach network 128.6.2, a
- gateway at address 128.6.4.1 should be used, and that network 128.6.6
- is actually an additional network number for the physical network
- connected to interface 128.6.5.35. Some other software might use
- different commands for these cases. Unix differentiates them by the
- "metric", which is the number at the end of the command. The metric
- indicates how many gateways the datagram will have to go through to
- get to the destination. Routes with metrics of 1 or greater specify
- the address of the first gateway on the path. Routes with metrics of
- 13
-
-
-
- 0 indicate that no gateway is involved -- this is an additional
- network number for the local network.
-
- Finally, you might define a default route, to be used for destinations
- not listed explicitly. This would normally show the address of a
- gateway that has enough information to handle all possible
- destinations.
-
- If your network has only one gateway attached to it, then of course
- all you need is a single entry pointing to it as a default. In that
- case, you need not worry further about setting up routing on your
- hosts. (The gateway itself needs more attention, as we will see.)
- The following sections are intended to provide help for setting up
- networks where there are several different gateways.
-
-
-
- 4.3 Routing redirects
-
-
- Most Internet experts recommend leaving routing decisions to the
- gateways. That is, it is probably a bad idea to have large fixed
- routing tables on each computer. The problem is that when something
- on the network changes, you have to go around to many computers and
- update the tables. If changes happen because a line goes down,
- service may not be restored until someone has a chance to notice the
- problem and change all the routing tables.
-
- The simplest way to keep routes up to date is to depend upon a single
- gateway to update your routing tables. This gateway should be set as
- your default. (On Unix, this would mean a command such as "route add
- default 128.6.4.27 1", where 128.6.4.27 is the address of the
- gateway.) As described above, your system will send all datagrams to
- the default when it doesn't have any better route. At first, this
- strategy does not sound very good if you have more than one gateway.
- After all, if all you have is a single default entry, how will you
- ever use the other gateways in the cases where they are better? The
- answer is that most gateways are able to send "redirects" when they
- get datagrams for which there is a better route. A redirect is a
- specific kind of message using the ICMP (Internet Control Message
- Protocol). It contains information that generally translates to "In
- the future, to get to address XXXXX, please use gateway YYYYY instead
- of me". Correct TCP/IP implementations use these redirects to add
- entries to their routing table. Suppose your routing table starts out
- as follows:
-
- Destination Gateway Flags Interface
-
- 127.0.0.1 127.0.0.1 UH lo0
- 128.6.4 128.6.4.61 U pe0
- default 128.6.4.27 UG pe0
-
- This contains an entry for the local network, 128.6.4, and a default
- pointing to the gateway 128.6.4.27. Suppose there is also a gateway
- 128.6.4.30, which is the best way to get to network 128.6.7. How do
- 14
-
-
-
- you find it? Suppose you have datagrams to send to 128.6.7.23. The
- first datagram will go to the default gateway, since that's the only
- thing in the routing table. However the default gateway, 128.6.4.27,
- will notice that 128.6.4.30 would really be a better route. (How it
- does that is up to the gateway. However there are some fairly simple
- methods for a gateway to determine that you would be better off using
- a different one.) Thus 128.6.4.27 will send back a redirect
- specifying that packets for 128.6.7.23 should be sent via 128.6.4.30.
- Your TCP/IP software will add a routing entry
-
- 128.6.7.23 128.6.4.30 UDHG pe0
-
- Any future datagrams for 128.6.7.23 will be sent directly to the
- appropriate gateway.
-
- This strategy would be a complete solution, if it weren't for three
- problems:
-
- - It requires each computer to have the address of one gateway
- "hardwired" into its startup files, as the initial default.
-
- - If a gateway goes down, routing table entries using it may not be
- removed.
-
- - If your network uses subnets, and your TCP/IP implementation does
- not handle them, this strategy will not work.
-
- How serious the first problem is depends upon your situation. For
- small networks, there is no problem modifying startup files whenever
- something changes. But some organizations can find it very painful.
- If network topology changes, and a gateway is removed, any systems
- that have that gateway as their default must be adjusted. This is
- particularly serious if the people who maintain the network are not
- the same as those maintaining the individual systems. One simple
- appoach is to make sure that the default address never changes. For
- example, you might adopt the convention that address 1 on each subnet
- is the default gateway for that subnet. For example, on subnet
- 128.6.7, the default gateway would always be 128.6.7.1. If that
- gateway is ever removed, some other gateway is given that address.
- (There must always be at least one gateway left to give it to. If
- there isn't, you are completely cut off anyway.)
-
- The biggest problem with the description given so far is that it tells
- you how to add routes but not how to get rid of them. What happens if
- a gateway goes down? You want traffic to be redirected back to a
- gateway that is up. Unfortunately, a gateway that has crashed is not
- going to issue Redirects. One solution is to choose very reliable
- gateways. If they crash very seldom, this may not be a problem. Note
- that Redirects can be used to handle some kinds of network failure.
- If a line goes down, your current route may no longer be a good one.
- As long as the gateway to which you are talking is still up and
- talking to you, it can simply issue a Redirect to the gateway that is
- now the best one. However you still need a way to detect failure of
- one of the gateways that you are talking to directly.
-
- 15
-
-
-
- The best approach for handling failed gateways is for your TCP/IP
- implementation to detect routes that have failed. TCP maintains
- various timers that allow the software to detect when a connection has
- broken. When this happens, one good approach is to mark the route
- down, and go back to the default gateway. A similar approach can also
- be used to handle failures in the default gateway. If you have mark
- two gateways as default, then the software should be capable of
- switching when connections using one of them start failing.
- Unfortunately, some common TCP/IP implementations do not mark routes
- as down and change to new ones. (In particular Berkeley 4.2 Unix does
- not.) However Berkeley 4.3 Unix does do this, and as other vendors
- begin to base products on 4.3 rather than 4.2, this ability is
- expected to be more common.
-
-
-
- 4.4 Other ways for hosts to find routes
-
-
- As long as your TCP/IP implementations handle failing connections
- properly, establishing one or more default routes in the configuration
- file is likely to be the simplest way to handle routing. However
- there are two other routing approaches that are worth considering for
- special situations:
-
- - spying on the routing protocol
-
- - using proxy ARP
-
-
-
- 4.4.1 Spying on Routing
-
-
- Gateways generally have a special protocol that they use among
- themselves. Note that redirects cannot be used by gateways.
- Redirects are simply ways for gateways to tell "dumb" hosts to use a
- different gateway. The gateways themselves must have a complete
- picture of the network, and a way to compute the optimal route to each
- subnet. Generally they maintain this picture by exchanging
- information among themselves. There are several different routing
- protocols in use for this purpose. One way for a computer to keep
- track of gateways is for it to listen to the gateways' messages.
- There is software available for this purpose for most of the common
- routing protocols. When you run this software, it maintains a
- complete picture of the network, just as the gateways do. The
- software is generally designed to maintain your computer's routing
- tables dynamically, so that datagrams are always sent to the proper
- gateway. In effect, the routing software issues the equivalent of the
- Unix "route add" and "route delete" commands as the network topology
- changes. Generally this results in a complete routing table, rather
- than one that depends upon default routes. (This assumes that the
- gateways themselves maintain a complete table. Sometimes gateways
- keep track of your campus network completely, but use a default route
- for all off-campus networks, etc.)
- 16
-
-
-
- Running routing software on each host does in some sense "solve" the
- routing problem. However there are several reasons why this is not
- normally recommended except as a last resort. The most serious
- problem is that this reintroduces configuration options that must be
- kept up to date on each host. Any computer that wants to participate
- in the protocol among the gateways will need to configure its software
- compatibly with the gateways. Modern gateways often have
- configuration options that are complex compared with those of an
- individual host. It is undesirable to spread these to every host.
-
- There is a somewhat more specialized problem that applies only to
- diskless computers. By its very nature, a diskless computer depends
- upon the network and file servers to load programs and to do swapping.
- It is dangerous for diskless computers to run any software that
- listens to network broadcasts. Routing software generally depends
- upon broadcasts. For example, each gateway on the network might
- broadcast its routing tables every 30 seconds. The problem with
- diskless nodes is that the software to listen to these broadcasts must
- be loaded over the network. On a busy computer, programs that are not
- used for a few seconds will be swapped or paged out. When they are
- activated again, they must be swapped or paged in. Whenever a
- broadcast is sent, every computer on the network needs to activate the
- routing software in order to process the broadcast. This means that
- many diskless computers will be doing swapping or paging at the same
- time. This is likely to cause a temporary overload of the network.
- Thus it is very unwise for diskless machines to run any software that
- requires them to listen to broadcasts.
-
-
-
- 4.4.2 Proxy ARP
-
-
- Proxy ARP is an alternative technique for letting gateways make all
- the routing decisions. It is applicable to any broadcast network that
- uses ARP or a similar technique for mapping Internet addresses into
- network-specific addresses such as Ethernet addresses. This
- presentation will assume Ethernet. Other network types can be
- acccomodated if you replace "Ethernet address" with the appropriate
- network-specific address, and ARP with the protocol used for address
- mapping by that network type.
-
- In many ways proxy ARP it is similar to using a default route and
- redirects, however it uses a different mechanism to communicate routes
- to the host. With redirects, a full routing table is used. At any
- given moment, the host knows what gateways it is routing datagrams to.
- With proxy ARP, you dispense with explicit routing tables, and do
- everything at the level of Ethernet addresses. Proxy ARP can be used
- for all destinations, only for destinations within your network, or in
- various combinations. It will be simplest to explain it as used for
- all addresses. To do this, you instruct the host to pretend that
- every computer in the world is attached directly to your local
- Ethernet. On Unix, this would be done using a command
-
- route add default 128.6.4.2 0
- 17
-
-
-
- where 128.6.4.2 is assumed to be the Internet address of your host.
- As explained above, the metric of 0 causes everything that matches
- this route to be sent directly on the local Ethernet.
-
- When a datagram is to be sent to a local Ethernet destination, your
- computer needs to know the Ethernet address of the destination. In
- order to find that, it uses something generally called the ARP table.
- This is simply a mapping from Internet address to Ethernet address.
- Here's a typical ARP table. (On our system, it is displayed using the
- command "arp -a".)
-
- FOKKER.RUTGERS.EDU (128.6.5.16) at 8:0:20:0:8:22 temporary
- CROSBY.RUTGERS.EDU (128.6.5.48) at 2:60:8c:49:50:63 temporary
- CAIP.RUTGERS.EDU (128.6.4.16) at 8:0:8b:0:1:6f temporary
- DUDE.RUTGERS.EDU (128.6.20.16) at 2:7:1:0:eb:cd temporary
- W20NS.MIT.EDU (18.70.0.160) at 2:7:1:0:eb:cd temporary
- OBERON.USC.EDU (128.125.1.1) at 2:7:1:2:18:ee temporary
- gatech.edu (128.61.1.1) at 2:7:1:0:eb:cd temporary
- DARTAGNAN.RUTGERS.EDU (128.6.5.65) at 8:0:20:0:15:a9 temporary
-
- Note that it is simply a list of Internet addresses and the
- corresponding Ethernet address. The "temporary" indicates that the
- entry was added dynamically using ARP, rather than being put into the
- table manually.
-
- If there is an entry for the address in the ARP table, the datagram is
- simply put on the Ethernet with the corresponding Ethernet address.
- If not, an "ARP request" is broadcast, asking for the destination host
- to identify itself. This request is in effect a question "will the
- host with Internet address 128.6.4.194 please tell me what your
- Ethernet address is?". When a response comes back, it is added to the
- ARP table, and future datagrams for that destination can be sent
- without delay.
-
- This mechanism was originally designed only for use with hosts
- attached directly to a single Ethernet. If you need to talk to a host
- on a different Ethernet, it was assumed that your routing table would
- direct you to a gateway. The gateway would of course have one
- interface on your Ethernet. Your computer would then end up looking
- up the address of that gateway using ARP. It would generally be
- useless to expect ARP to work directly with a computer on a distant
- network. Since it isn't on the same Ethernet, there's no Ethernet
- address you can use to send datagrams to it. And when you send an ARP
- request for it, there's nobody to answer the request.
-
- Proxy ARP is based on the concept that the gateways will act as
- proxies for distant hosts. Suppose you have a host on network
- 128.6.5, with address 128.6.5.2. (computer A in diagram below) It
- wants to send a datagram to host 128.6.4.194, which is on a different
- Ethernet (subnet 128.6.4). (computer C in diagram below) There is a
- gateway connecting the two subnets, with address 128.6.5.1 (gateway
- R):
-
-
-
- 18
-
-
-
- network 1 network 2
- 128.6.5 128.6.4
- ============================ ==================
- | | | | | |
- ___|______ _____|____ __|____|__ __|____|____
- 128.6.5.2 128.6.5.3 128.6.5.1 128.6.4.194
- 128.6.4.1
- __________ __________ __________ ____________
- computer A computer B gateway R computer C
-
-
- Now suppose computer A sends an ARP request for computer C. C isn't
- able to answer for itself. It's on a different network, and never
- even sees the ARP request. However gateway R can act on its behalf.
- In effect, your computer asks "will the host with Internet address
- 128.6.4.194 please tell me what your Ethernet address is?", and the
- gateway says "here I am, 128.6.4.194 is 2:7:1:0:eb:cd", where
- 2:7:1:0:eb:cd is actually the Ethernet address of the gateway. This
- bit of illusion works just fine. Your host now thinks that
- 128.6.4.194 is attached to the local Ethernet with address
- 2:7:1:0:eb:cd. Of course it isn't. But it works anyway. Whenever
- there's a datagram to be sent to 128.6.4.194, your host sends it to
- the specified Ethernet address. Since that's the address of a gateway
- R, the gateway gets the packet. It then forwards it to the
- destination.
-
- Note that the net effect is exactly the same as having an entry in the
- routing table saying to route destination 128.6.4.194 to gateway
- 128.6.5.1:
-
- 128.6.4.194 128.6.5.1 UGH pe0
-
- except that instead of having the routing done at the level of the
- routing table, it is done at the level of the ARP table.
-
- Generally it's better to use the routing table. That's what it's
- there for. However here are some cases where proxy ARP makes sense:
-
- - when you have a host that does not implement subnets
-
- - when you have a host that does not respond properly to redirects
-
- - when you do not want to have to choose a specific default gateway
-
- - when your software is unable to recover from a failed route
-
- The technique was first designed to handle hosts that do not support
- subnets. Suppose that you have a subnetted network. For example, you
- have chosen to break network 128.6 into subnets, so that 128.6.4 and
- 128.6.5 are separate. Suppose you have a computer that does not
- understand subnets. It will assume that all of 128.6 is a single
- network. Thus it will be difficult to establish routing table entries
- to handle the configuration above. You can't tell it about the
- gateway explicitly using "route add 128.6.4.0 128.6.5.1 1" Since it
- thinks all of 128.6 is a single network, it can't understand that you
- 19
-
-
-
- are trying to tell it where to send one subnet. It will instead
- interpret this command as an attempt to set up a host route to a host
- who address is 128.6.4.0. The only thing that would work would be to
- establish explicit host routes for every individual host on every
- other subnet. You can't depend upon default gateways and redirects in
- this situation either. Suppose you said "route add default 128.6.5.1
- 1". This would establish the gateway 128.6.5.1 as a default. However
- the system wouldn't use it to send packets to other subnets. Suppose
- the host is 128.6.5.2, and wants to send a datagram to 128.6.4.194.
- Since the destination is part of 128.6, your computer considers it to
- be on the same network as itself, and doesn't bother to look for a
- gateway.
-
- Proxy ARP solves this problem by making the world look the way the
- defective implementation expects it to look. Since the host thinks
- all other subnets are part of its own network, it will simply issue
- ARP requests for them. It expects to get back an Ethernet address
- that can be used to establish direct communications. If the gateway
- is practicing proxy ARP, it will respond with the gateway's Ethernet
- address. Thus datagrams are sent to the gateway, and everything
- works.
-
- As you can see, no specific configuration is need to use proxy ARP
- with a host that doesn't understand subnets. All you need is for your
- gateways to implement proxy ARP. In order to use it for other
- purposes, you must explicitly set up the routing table to cause ARP to
- be used. By default, TCP/IP implementations will expect to find a
- gateway for any destination that is on a different network. In order
- to make them issue ARP's, you must explicitly install a route with
- metric 0, as in the example "route add default 128.6.5.2 0".
-
- It is obvious that proxy ARP is reasonable in situations where you
- have hosts that don't understand subnets. Some comments may be needed
- on the other situations. Generally TCP/IP implementations do handle
- ICMP redirects properly. Thus it is normally practical to set up a
- default route to some gateway, and depend upon the gateway to issue
- redirects for destinations that should use a different gateway.
- However in case you ever run into an implementation that does not obey
- redirects, or cannot be configured to have a default gateway, you may
- be able to make things work by depending upon proxy ARP. Of course
- this requires that you be able to configure the host to issue ARP's
- for all destinations. You will need to read the documentation
- carefully to see exactly what routing features your implementation
- has.
-
- Sometimes you may choose to depend upon proxy ARP for convenience.
- The problem with routing tables is that you have to configure them.
- The simplest configuration is simply to establish a default route, but
- even there you have to supply some equivalent to the Unix command
- "route add default ...". Should you change the addresses of your
- gateways, you have to modify this command on all of your hosts, so
- that they point to the new default gateway. If you set up a default
- route that depends upon proxy ARP (i.e. has metric 0), you won't have
- to change your configuration files when gateways change. With proxy
- ARP, no gateway addresses are given explicitly. Any gateway can
- 20
-
-
-
- respond to the ARP request, no matter what its address.
-
- In order to save you from having to do configuration, some TCP/IP
- implementations default to using ARP when they have no other route.
- The most flexible implementations allow you to mix strategies. That
- is, if you have specified a route for a particular network, or a
- default route, they will use that route. But if there is no route for
- a destination, they will treat it as local, and issue an ARP request.
- As long as your gateways support proxy ARP, this allows such hosts to
- reach any destination without any need for routing tables.
-
- Finally, you may choose to use proxy ARP because it provides better
- recovery from failure. This choice is very much dependent upon your
- implementation. The next section will discuss the tradeoffs in more
- detail.
-
- In situations where there are several gateways attached to your
- network, you may wonder how proxy ARP allows you to choose the best
- one. As described above, your computer simply sends a broadcast
- asking for the Ethernet address for a destination. We assumed that
- the gateways would be set up to respond to this broadcast. If there
- is more than one gateway, this requires coordination among them.
- Ideally, the gateways will have a complete picture of the network
- topology. Thus they are able to determine the best route from your
- host to any destination. If the gateway coordinate among themselves,
- it should be possible for the best gateway to respond to your ARP
- request. In practice, it may not always be possible for this to
- happen. It is fairly easy to design algorithms to prevent very bad
- routes. For example, consider the following situation:
-
- 1 2 3
- ------- A ---------- B ----------
-
- 1, 2, and 3 are networks. A and B are gateways, connecting network 2
- to 1 or 3. If a host on network 2 wants to talk to a host on network
- 1, it is fairly easy for gateway A to decide to answer, and for
- gateway B to decide not to. Here's how: if gateway B accepted a
- datagram for network 1, it would have to forward it to gateway A for
- delivery. This would mean that it would take a packet from network 2
- and send it right back out on network 2. It is very easy to test for
- routes that involve this sort of circularity. It is much harder to
- deal with a situation such as the following:
-
- 1
- ---------------
- A B
- | | 4
- | |
- 3 | C
- | |
- | | 5
- D E
- ---------------
- 2
-
- 21
-
-
-
- Suppose a computer on network 1 wants to send a datagram to one on
- network 2. The route via A and D is probably better, because it goes
- through only one intermediate network (3). It is also possible to go
- via B, C, and E, but that path is probably slightly slower. Now
- suppose the computer on network 1 sends an ARP request for a
- destination on 2. It is likely that A and B will both respond to that
- request. B is not quite as good a route as A. However it is not so
- bad as the case above. B won't have to send the datagram right back
- out onto network 1. It is unable to determine there is a better
- alternative route without doing a significant amount of global
- analysis on the network. This may not be practical in the amount of
- time available to process an ARP request.
-
-
-
- 4.4.3 Moving to New Routes After Failures
-
-
- In principle, TCP/IP routing is capable of handling line failures and
- gateway crashes. There are various mechanisms to adjust routing
- tables and ARP tables to keep them up to date. Unfortunately, many
- major implementations of TCP/IP have not implemented all of these
- mechanisms. The net result is that you have to look carefully at the
- documentation for your implementation, and consider what kinds of
- failures are most likely. You then have to choose a strategy that
- will work best for your site. The basic choices for finding routes
- have all been listed above: spying on the gateways' routing protocol,
- setting up a default route and depending upon redirects, and using
- proxy ARP. These methods all have their own limitations in dealing
- with a changing network.
-
- Spying on the gateways' routing protocol is theoretically the cleanest
- solution. Assuming that the gateways use good routing technology, the
- tables that they broadcast contain enough information to maintain
- optimal routes to all destinations. Should something in the network
- change (a line or a gateway goes down), this information will be
- reflected in the tables, and the routing software will be able to
- update the hosts' routing tables appropriately. The disadvantages are
- entirely practical. However in some situations the robustness of this
- approach may outweight the disadvantages. To summarize the discussion
- above, the disadvantages are:
-
- - If the gateways are using sophisticated routing protocols,
- configuration may be fairly complex. Thus you will be faced with
- setting up and maintaining configuration files on every host.
-
- - Some gateways use proprietary routing protocols. In this case,
- you may not be able to find software for your hosts that
- understands them.
-
- - If your hosts are diskless, there can be very serious performance
- problems associated with listening to routing broadcasts.
-
- Some gateways may be able to convert from their internal routing
- protocol to a simpler one for use by your hosts. This could largely
- 22
-
-
-
- bypass the first two disadvantages. Currently there is no known way
- to get around the third one.
-
- The problems with default routes/redirects and with proxy ARP are
- similar: they both have trouble dealing with situations where their
- table entries no longer apply. The only real difference is that
- different tables are involved. Suppose a gateway goes down. If any
- of your current routes are using that gateway, you may be in trouble.
- If you are depending upon the routing table, the major mechanism for
- adjusting routes is the redirect. This works fine in two situations:
-
- - where the default gateway is not the best route. The default
- gateway can direct you to a better gateway
-
- - where a distant line or gateway fails. If this changes the best
- route, the current gateway can redirect you to the gateway that
- is now best
-
- The case it does not protect you against is where the gateway that you
- are currently sending your datagrams to crashes. Since it is down, it
- is unable to redirect you to another gateway. In many cases, you are
- also unprotected if your default gateway goes down, since there
- routing starts by sending to the default gateway.
-
- The situation with proxy ARP is similar. If the gateways coordinate
- themselves properly, the right one will respond initially. If
- something elsewhere in the network changes, the gateway you are
- currently issuing can issue a redirect to a new gateway that is
- better. (It is usually possible to use redirects to override routes
- established by proxy ARP.) Again, the case you are not protected
- against is where the gateway you are currently using crashes. There
- is no equivalent to failure of a default gateway, since any gateway
- can respond to the ARP request.
-
- So the big problem is that failure of a gateway you are using is hard
- to recover from. It's hard because the main mechanism for changing
- routes is the redirect, and a gateway that is down can't issue
- redirects. Ideally, this problem should be handled by your TCP/IP
- implementation, using timeouts. If a computer stops getting response,
- it should cancel the existing route, and try to establish a new one.
- Where you are using a default route, this means that the TCP/IP
- implementation must be able to declare a route as down based on a
- timeout. If you have been redirected to a non-default gateway, and
- that route is declared down, traffic will return to the default. The
- default gateway can then begin handling the traffic, or redirect it to
- a different gateway. To handle failure of a default gateway, it
- should be possible to have more than one default. If one is declared
- down, another will be used. Together, these mechanisms should take
- care of any failure.
-
- Similar mechanisms can be used by systems that depend upon proxy ARP.
- If a connection is timing out, the ARP table entry that it uses should
- be cleared. This will cause a new ARP request, which can be handled
- by a gateway that is still up. A simpler mechanism would simply be to
- time out all ARP entries after some period. Since making a new ARP
- 23
-
-
-
- request has a very low overhead, there's no problem with removing an
- ARP entry even if it is still good. The next time a datagram is to be
- sent, a new request will be made. The response is normally fast
- enough that users will not even notice the delay.
-
- Unfortunately, many common implementations do not use these
- strategies. In Berkeley 4.2, there is no automatic way of getting rid
- of any kind of entry, either routing or ARP. They do not invalidate
- routes on timeout nor ARP entries. ARP entries last forever. If
- gateway crashes are a significant problem, there may be no choice but
- to run software that listens to the routing protocol. In Berkeley
- 4.3, routing entries are removed when TCP connections are failing.
- ARP entries are still not removed. This makes the default route
- strategy more attractive for 4.3 than proxy ARP. Having more than one
- default route may also allow for recovery from failure of a default
- gateway. Note however that 4.3 only handles timeout for connections
- using TCP. If a route is being used only by services based on UDP, it
- will not recover from gateway failure. While the "traditional" TCP/IP
- services use TCP, network file systems generally do not. Thus
- 4.3-based systems still may not always be able to recover from
- failure.
-
- In general, you should examine your implementation in detail to
- determine what sort of error recovery strategy it uses. We hope that
- the discussion in this section will then help you choose the best way
- of dealing with routing.
-
- There is one more strategy that some older implementations use. It is
- strongly discouraged, but we mention it here so you can recognize it
- if you see it. Some implementations detect gateway failure by taking
- active measure to see what gateways are up. The best version of this
- is based on a list of all gateways that are currently in use. (This
- can be determined from the routing table.) Every minute or so, an
- echo request datagram is sent to each such gateway. If a gateway
- stops responding to echo requests, it is declared down, and all routes
- using it revert to the default. With such an implementation, you
- normally supply more than one default gateway. If the current default
- stops responding, an alternate is chosen. In some cases, it is not
- even necessary to choose an explicit default gateway. The software
- will randomly choose any gateway that is responding. This
- implementation is very flexible and recovers well from failures.
- However a large network full of such implementations will waste a lot
- of bandwidth on the echo datagrams that are used to test whether
- gateways are up. This is the reason that this strategy is
- discouraged.
-
-
-
- 5. Bridges and Gateways
-
-
- This section will deal in more detail with the technology used to
- construct larger networks. It will focus particularly on how to
- connect together multiple Ethernets, token rings, etc. These days
- most networks are hierarchical. Individual hosts attach to local-area
- 24
-
-
-
- networks such as Ethernet or token ring. Then those local networks
- are connected via some combination of backbone networks and point to
- point links. A university might have a network that looks in part
- like this:
-
- ________________________________
- | net 1 net 2 net 3 | net 4 net 5
- | ---------X---------X-------- | -------- --------
- | | | | |
- | Building A | | | |
- | ----------X--------------X-----------------X
- | | campus backbone network :
- |______________________________| :
- serial :
- line :
- -------X-----
- net 6
-
- Nets 1, 2 and 3 are in one building. Nets 4 and 5 are in different
- buildings on the same campus. Net 6 is in a somewhat more distant
- location. The diagram above shows nets 1, 2, and 3 being connected
- directly, with switches that handle the connections being labelled as
- "X". Building A is connected to the other buildings on the same
- campus by a backbone network. Note that traffic from net 1 to net 5
- takes the following path:
-
- - from 1 to 2 via the direct connection between those networks
-
- - from 2 to 3 via another direct connection
-
- - from 3 to the backbone network
-
- - across the backbone network from building A to the building in
- which net 5 is housed
-
- - from the backbone network to net 5
-
- Traffic for net 6 would additionally pass over a serial line. With
- the setup as shown, the same switch is being used to connect the
- backbone network to net 5 and to the serial line. Thus traffic from
- net 5 to net 6 would not need to go through the backbone, since there
- is a direct connection from net 5 to the serial line.
-
- This section is largely about what goes in those "X"'s.
-
-
-
- 5.1 Alternative Designs
-
-
- Note that there are alternatives to the sort of design shown above.
- One is to use point to point lines or switched lines directly to each
- host. Another is to use a single-level of network technology that is
- capable of handling both local and long-haul networking.
-
- 25
-
-
-
- 5.1.1 A mesh of point to point lines
-
-
- Rather than connecting hosts to a local network such as Ethernet, and
- then interconnecting the Ethernets, it is possible to connect
- long-haul serial lines directly to the individual computers. If your
- network consists primarily of individual computers at distant
- locations, this might make sense. Here would be a small design of
- that type.
-
- computer 1 computer 2 computer 3
- | | |
- | | |
- | | |
- computer 4 -------------- computer 5 ----------- computer 6
-
- In the design shown earlier, the task of routing datagrams around the
- network is handled by special-purpose switching units shown as "X"'s.
- If you run lines directly between pairs of hosts, your hosts will be
- doing this sort of routing and switching, as well as their normal
- computing. Unless you run lines directly between every pair of
- computers, some systems will end up handling traffic for others. For
- example, in this design, traffic from 1 to 3 will go through 4, 5 and
- 6. This is certainly possible, since most TCP/IP implementations are
- capable of forwarding datagrams. If your network is of this type, you
- should think of your hosts as also acting as gateways. Much of the
- discussion below on configuring gateways will apply to the routing
- software that you run on your hosts. This sort of configuration is
- not as common as it used to be, for two reasons:
-
- - Most large networks have more than one computer per location. In
- this case it is less expensive to set up a local network at each
- location than to run point to point lines to each computer.
-
- - Special-purpose switching units have become less expensive. It
- often makes sense to offload the routing and communications tasks
- to a switch rather than handling it on the hosts.
-
- It is of course possible to have a network that mixes the two kinds of
- techology. In this case, locations with more equipment would be
- handled by a hierarchical system, with local-area networks connected
- by switches. Remote locations with a single computer would be handled
- by point to point lines going directly to those computers. In this
- case the routing software used on the remote computers would have to
- be compatible with that used by the switches, or there would need to
- be a gateway between the two parts of the network.
-
- Design decisions of this type are typically made after an assessment
- of the level of network traffic, the complexity of the network, the
- quality of routing software available for the hosts, and the ability
- of the hosts to handle extra network traffic.
-
-
-
-
- 26
-
-
-
- 5.1.2 Circuit switching technology
-
-
- Another alternative to the hierarchical LAN/backbone approach is to
- use circuit switches connected to each individual computer. This is
- really a variant of the point to point line technique, where the
- circuit switch allows each system to have what amounts to a direct
- line to every other system. This technology is not widely used within
- the TCP/IP community, largely because the TCP/IP protocols assume that
- the lowest level handles isolated datagrams. When a continuous
- connection is needed, higher network layers maintain it using
- datagrams. This datagram-oriented technology does not match a
- circuit-oriented environment very closely. In order to use circuit
- switching technology, the IP software must be modified to be able to
- build and tear down virtual circuits as appropriate. When there is a
- datagram for a given destination, a virtual circuit must be opened to
- it. The virtual circuit would be closed when there has been no
- traffic to that destination for some time. The major use of this
- technology is for the DDN (Defense Data Network). The primary
- interface to the DDN is based on X.25. This network appears to the
- outside as a distributed X.25 network. TCP/IP software intended for
- use with the DDN must do precisely the virtual circuit management just
- described. Similar techniques could be used with other
- circuit-switching technologies, e.g. ATT's DataKit, although there is
- almost no software currently available to support this.
-
-
-
- 5.1.3 Single-level networks
-
-
- In some cases new developments in wide-area networks can eliminate the
- need for hierarchical networks. Early hierarchical networks were set
- up because the only convenient network technology was Ethernet or
- other LAN's, and those could not span distances large enough to cover
- an entire campus. Thus it was necessary to use serial lines to
- connect LAN's in various locations. It is now possible to find
- network technology whose characteristics are similar to Ethernet, but
- where a single network can span a campus. Thus it is possible to
- think of using a single large network, with no hierarchical structure.
-
- The primary limitations of a large single-level network are
- performance and reliability considerations. If a single network is
- used for the entire campus, it is very easy to overload it.
- Hierarchical networks can handle a larger traffic volume than
- single-level networks if traffic patterns have a reasonable amount of
- locality. That is, in many applications, traffic within an individual
- department tends to be greater than traffic among departments.
-
- Let's look at a concrete example. Suppose there are 10 departments,
- each of which generate 1 Mbit/sec of traffic. Suppose futher than 90%
- of that traffic is to other systems within the department, and only
- 10% is to other departments. If each department has its own network,
- that network only needs to handle 1 Mbit/sec. The backbone network
- connecting the department also only needs 1 Mbit/sec capacity, since
- 27
-
-
-
- it is handling 10% of 1 Mbit from each department. In order to handle
- this situation with a single wide-area network, that network would
- have to be able to handle the simultaneous load from all 10
- departments, which would be 10 Mbit/sec.
-
- The second limitation on single-level networks is reliability,
- maintainability and security. Wide-area networks are more difficult
- to diagnose and maintain than local-area networks, because problems
- can be introduced from any building to which the network is connected.
- They also make traffic visible in all locations. For these reasons,
- it is often sensible to handle local traffic locally, and use the
- wide-area network only for traffic that actually must go between
- buildings. However if you have a situation where each location has
- only one or two computers, it may not make sense to set up a local
- network at each location, and a single-level network may make sense.
-
-
-
- 5.1.4 Mixed designs
-
-
- In practice, few large networks have the luxury of adopting a
- theoretically pure design.
-
- It is very unlikely that any large network will be able to avoid using
- a hierarchical design. Suppose we set out to use a single-level
- network. Even if most buildings have only one or two computers, there
- will be some location where there are enough that a local-area network
- is justified. The result is a mixture of a single-level network and a
- hierachical network. Most buildings have their computers connected
- directly to the wide-area network, as with a single-level network.
- However in one building there is a local-area network which uses the
- wide-area network as a backbone, connecting to it via a switching
- unit.
-
- On the other side of the story, even network designers with a strong
- commitment to hierarchical networks are likely to find some parts of
- the network where it simply doesn't make economic sense to install a
- local-area network. So a host is put directly onto the backbone
- network, or tied directly to a serial line.
-
- However you should think carefully before making ad hoc departures
- from your design philosophy in order to save a few dollars. In the
- long run, network maintainability is going to depend upon your ability
- to make sense of what is going on in the network. The more consistent
- your technology is, the more likely you are to be able to maintain the
- network.
-
-
-
-
-
-
-
-
- 28
-
-
-
- 5.2 An introduction to alternative switching technologies
-
-
- This section will discuss the characteristics of various technologies
- used to switch datagrams between networks. In effect, we are trying
- to fill in some details about the black boxes assumed in previous
- sections. There are three basic types of switches, generally referred
- to as repeaters, bridges, and gateways, or alternatively as level 1, 2
- and 3 switches (based on the level of the ISO model at which they
- operate). Note however that there are systems that combine features
- of more than one of these, particularly bridges and gateways.
-
- The most important dimensions on which switches vary are isolation,
- performance, routing and network management facilities. These will be
- discussed below.
-
- The most serious difference is between repeaters and the other two
- types of switch. Until recently, gateways provided very different
- services from bridges. However these two technologies are now coming
- closer together. Gateways are beginning to adopt the special-purpose
- hardware that has characterized bridges in the past. Bridges are
- beginning to adopt more sophisticated routing, isolation features, and
- network management, which have characterized gateways in the past.
- There are also systems that can function as both bridge and gateway.
- This means that at the moment, the crucial decision may not be to
- decide whether to use a bridge or a gateway, but to decide what
- features you want in a switch and how it fits into your overall
- network design.
-
-
-
- 5.2.1 Repeaters
-
-
- A repeater is a piece of equipment that connects two networks that use
- the same technology. It receives every data packet on each network,
- and retransmits it onto the other network. The net result is that the
- two networks have exactly the same set of packets on them. For
- Ethernet or IEEE 802.3 networks there are actually two different kinds
- of repeater. (Other network technologies may not need to make this
- distinction.)
-
- A simple repeater operates at a very low level indeed. Its primary
- purpose is to get around limitations in cable length caused by signal
- loss or timing dispersion. It allows you to construct somewhat larger
- networks than you would otherwise be able to construct. It can be
- thought of as simply a two-way amplifier. It passes on individual
- bits in the signal, without doing any processing at the packet level.
- It even passes on collisions. That is, if a collision is generated on
- one of the networks connected to it, the repeater generates a
- collision on the other network. There is a limit to the number of
- repeaters that you can use in a network. The basic Ethernet design
- requires that signals must be able to get from one end of the network
- to the other within a specified amount of time. This determines a
- maximum allowable length. Putting repeaters in the path does not get
- 29
-
-
-
- around this limit. (Indeed each repeater adds some delay, so in some
- ways a repeater makes things worse.) Thus the Ethernet configuration
- rules limit the number of repeaters that can be in any path.
-
- A "buffered repeater" operates at the level of whole data packets.
- Rather than passing on signals a bit at a time, it receives an entire
- packet from one network into an internal buffer and then retransmits
- it onto the other network. It does not pass on collisions. Because
- such low-level features as collisions are not repeated, the two
- networks continue to be separate as far as the Ethernet specifications
- are concerned. Thus there are no restrictions on the number of
- buffered repeaters that can be used. Indeed there is no requirement
- that both of the networks be of the same type. However the two
- networks must be sufficiently similar that they have the same packet
- format. Generally this means that buffered repeaters can be used
- between two networks of the IEEE 802.x family (assuming that they have
- chosen the same address length), or two networks of some other related
- family. A pair of buffered repeaters can be used to connect two
- networks via a serial line.
-
- Buffered repeaters share with simple repeaters the most basic feature:
- they repeat every data packet that they receive from one network onto
- the other. Thus the two networks end up with exactly the same set of
- packets on them.
-
-
-
- 5.2.2 Bridges and gateways
-
-
- A bridge differs from a buffered repeater primarily in the fact that
- it exercizes some selectivity as to what packets it forwards between
- networks. Generally the goal is to increase the capacity of the
- system by keeping local traffic confined to the network on which it
- originates. Only traffic intended for the other network (or some
- other network accessed through it) goes through the bridge. So far
- this description would also apply to a gateway. Bridges and gateways
- differ in the way they determine what packets to forward. A bridge
- uses only the ISO level 2 address. In the case of Ethernet or IEEE
- 802.x networks, this is the 6-byte Ethernet or MAC-level address. (The
- term MAC-level address is more general. However for the sake of
- concreteness, examples in this section will assume that Ethernet is
- being used. You may generally replace the term "Ethernet address"
- with the equivalent MAC-level address for other similar technologies.)
- A bridge does not examine the packet itself, so it does not use the IP
- address or its equivalent for routing decisions. In contrast, a
- gateway bases its decisions on the IP address, or its equivalent for
- other protocols.
-
- There are several reasons why it matters which kind of address is used
- for decisions. The most basic is that it affects the relationship
- between the switch and the upper layers of the protocol. If
- forwarding is done at the level of the MAC-level address (bridge), the
- switch will be invisible to the protocols. If it is done at the IP
- level, the switch will be visible. Let's give an example. Here are
- 30
-
-
-
- two networks connected by a bridge:
-
- network 1 network 2
- 128.6.5 128.6.4
- ================== ================================
- | | | | |
- ___|______ __|______|__ _______|___ _______|___
- 128.6.5.2 bridge 128.6.4.3 128.6.4.4
- __________ ____________ ___________ ___________
- computer A computer B computer C
-
-
- Note that the bridge does not have an IP address. As far as computers
- A, B, and C are concerned, there is a single Ethernet (or other
- network) to which they are all attached. This means that the routing
- tables must be set up so that computers on both networks treat both
- networks as local. When computer A opens a connection to computer B,
- it first broadcasts an ARP request asking for computer B's Ethernet
- address. The bridge must pass this broadcast from network 1 to
- network 2. (In general, bridges must pass all broadcasts.) Once the
- two computers know each other's Ethernet addresses, communications use
- the Ethernet address as the destination. At that point, the bridge
- can start exerting some selectivity. It will only pass packets whose
- Ethernet destination address is for a machine on the other network.
- Thus a packet from B to A will be passed from network 2 to 1, but a
- packet from B to C will be ignored.
-
- In order to make this selection, the bridge needs to know which
- network each machine is on. Most modern bridges build up a table for
- each network, listing the Ethernet addresses of machines known to be
- on that network. They do this by watching all of the packets on both
- networks. When a packet first appears on network 1, it is reasonable
- to conclude that the Ethernet source address corresponds to a machine
- on network 1.
-
- Note that a bridge must look at every packet on the Ethernet, for two
- different reasons. First, it may use the source address to learn
- which machines are on which network. Second, it must look at the
- destination address in order to decide whether it needs to forward the
- packet to the other network.
-
- As mentioned above, generally bridges must pass broadcasts from one
- network to the other. Broadcasts are often used to locate a resource.
- The ARP request is a typical example of this. Since the bridge has no
- way of knowing what host is going to answer the broadcast, it must
- pass it on to the other network. Some newer bridges have
- user-selectable filters. With them, it is possible to block some
- broadcasts and allow others. You might allow ARP broadcasts (which
- are essential for IP to function), but confine less essential
- broadcasts to one network. For example, you might choose not to pass
- rwhod broadcasts, which some systems use to keep track of every user
- logged into every other system. You might decide that it is
- sufficient for rwhod to know about the systems on a single segment of
- the network.
-
- 31
-
-
-
- Now let's take a look at two networks connected by a gateway
-
- network 1 network 2
- 128.6.5 128.6.4
- ==================== ==================================
- | | | | |
- ___|______ ____|__________|____ _______|___ _______|___
- 128.6.5.2 128.6.5.1 128.6.4.1 128.6.4.3 128.6.4.4
- __________ ____________________ ___________ ___________
- computer A gateway computer B computer C
-
-
- Note that the gateway has IP addresses assigned to each interface.
- The computers' routing tables are set up to forward through
- appropriate address. For example, computer A has a routing entry
- saying that it should use the gateway 128.6.5.1 to get to subnet
- 128.6.4.
-
- Because the computers know about the gateway, the gateway does not
- need to scan all the packets on the Ethernet. The computers will send
- packets to it when appropriate. For example, suppose computer A needs
- to send a message to computer B. Its routing table will tell it to use
- gateway 128.6.5.1. It will issue an ARP request for that address.
- The gateway will respond to the ARP request, just as any host would.
- From then on, packets destinated for B will be sent with the gateway's
- Ethernet address.
-
-
-
- 5.2.3 More about bridges
-
-
- There are several advantages to using the Mac-level address, as a
- bridge does. First, every packet on an Ethernet or IEEE network has
- such an address. The address is in the same place for every packet,
- whether it is IP, DECnet, or some other protocol. Thus it is
- relatively fast to get the address from the packet. A gateway must
- decode the entire IP header, and if it is to support protocols other
- than IP, it must have software for each such protocol. This means
- that a bridge automatically supports every possible protocol, whereas
- a gateway requires specific provisions for each protocol it is to
- support.
-
- However there are also disadvantages. The one that is intrinsic to
- the design of a bridge is
-
- - A bridge must look at every packet on the network, not just those
- addressed to it. Thus it is possible to overload a bridge by
- putting it on a very busy network, even if very little traffic is
- actually going through the bridge.
-
- However there are another set of disadvantages that are based on the
- way bridges are usually built. It is possible in principle to design
- bridges that do not have these disadvantages, but I don't know of any
- plans to do so. They all stem from the fact that bridges do not have
- 32
-
-
-
- a complete routing table that describes the entire system of networks.
- They simply have a list of the Ethernet addresses that lie on each of
- its two networks. This means
-
- - A bridge can handle only two network interfaces. At a central
- site, where many networks converge, this normally means that you
- set up a backbone network to which all the bridges connect, and
- then buy a separate bridge to connect each other network to that
- backbone. Gateways often have between 4 and 8 interfaces.
-
- - Networks that use bridges cannot have loops in them. If there
- were a loop, some bridges would see traffic from the same
- Ethernet address coming from both directions, and would be unable
- to decide which table to put that address in. Note that any
- parallel paths to the same direction constitute a loop. This
- means that multiple paths cannot be used for purposes of
- splitting the load or providing redundancy.
-
- There are some ways of getting around the problem of loops. Many
- bridges allow configurations with redundant connections, but turn off
- links until there are no loops left. Should a link fail, one of the
- disabled ones is then brought back into service. Thus redundant links
- can still buy you extra reliability. But they can't be used to
- provide extra capacity. It is also possible to build a bridge that
- will make use of parallel point to point lines, in the one special
- case where those lines go between a single pair of bridges. The
- bridges would treat the two lines as a single virtual line, and use
- them alternately in round-robin fashion.
-
- The process of disabling redundant connections until there are no
- loops left is called a "spanning tree algorithm". This name comes
- from the fact that a tree is defined as a pattern of connections with
- no loops. Thus one wants to disable connections until the connections
- that are left form a tree that "spans" (includes) all of the networks
- in the system. In order to do this, all of the bridges in a network
- system must communicate among themselves. There is an IEEE proposal
- to standardize the protocol for doing this, and for constructing the
- spanning tree.
-
- Note that there is a tendency for the resulting spanning tree to
- result in high network loads on certain parts of the system. The
- networks near the "top of the tree" handle all traffic between distant
- parts of the network. In a network that uses gateways, it would be
- possible to put in an extra link between parts of the network that
- have heavy traffic between them. However such extra links cannot be
- used by a set of bridges.
-
-
-
-
-
-
-
-
-
- 33
-
-
-
- 5.2.4 More about gateways
-
-
- Gateways have their own advantages and disadvantages. In general a
- gateway is more complex to design and to administer than a bridge. A
- gateway must participate in all of the protocols that it is designed
- to forward. For example, an IP gateway must respond to ARP requests.
- The IP standards also require it to completely process the IP header,
- decrementing the time to live field and obeying any IP options.
-
- Gateways are designed to handle more complex network topologies than
- bridges. As such, they have a different (and more complex) set of
- decisions to make. In general a bridge has only a binary decision to
- make: does it or does it not pass a given packet from one network to
- the other? However a gateway may have several network interfaces.
- Furthermore, when it forwards a packet, it must decide what host or
- gateway to send the packet to next. It is even possible for a gateway
- to decide to send a packet back onto the same network it came from.
- If a host is using the gateway as its default, it may send packets
- that really should go to some other gateway. In that case, the
- gateway will send the packet on to the right gateway, and send back an
- ICMP redirect to the host. Many gateways can also handle parallel
- paths. If there are several equally good paths to a destination, the
- gateway will alternate among them in round-robin fashion.
-
- In order to handle these decisions, a gateway will typically have a
- routing table that looks very much like a host's. As with host
- routing tables, a gateway's table contains an entry for each possible
- network number. For each network, there is either an entry saying
- that that network is connected directly to the gateway, or there is an
- entry saying that traffic for that network should be forwarded through
- some other gateway or gateways. We will describe the "routing
- protocols" used to build up this information later, in the discussion
- on how to configure a gateway.
-
-
-
- 5.3 Comparing the switching technologies
-
-
- Repeaters, buffered repeaters, bridges, and gateways form a spectrum.
- Those devices near the beginning of the list are best for smaller
- networks. They are less expensive, and easier to set up, but less
- general. Those near the end of the list are suitable for building
- more complex networks. Many networks will contain a mixture of switch
- types, with repeaters being used to connect a few nearby network
- segments, bridges used for slightly larger areas (particularly those
- with low traffic levels), and gateways used for long-distance links.
-
- Note that this document so far has assumed that only gateways are
- being used. The section on setting up a host described how to set up
- a routing table listing the gateways to use to get to various
- networks. Repeaters and bridges are invisible to IP. So as far as
- previous sections are concerned, networks connected by them are to be
- considered a single network. Section 3.3.1 describes how to configure
- 34
-
-
-
- a host in the case where several subnets are carried on a single
- physical network. The same configuration should be used when several
- subnets are connected by repeaters or bridges.
-
- As mentioned above, the most important dimensions on which switches
- vary are isolation, performance, routing, network management, and
- performing auxilliary support services.
-
-
-
- 5.3.1 Isolation
-
-
- Generally people use switches to connect networks to each other. So
- they are normally thinking of gaining connectivity, not providing
- isolation. However isolation is worth thinking about. If you connect
- two networks and provide no isolation at all, then any network
- problems on other networks suddenly appear on yours as well. Also,
- the two networks together may have enough traffic to overwhelm your
- network. Thus it is well to think of choosing an appropriate level of
- protection.
-
- Isolation comes in two kinds: isolation against malfunctions and
- traffic isolation. In order to discuss isolation of malfunctions, we
- have to have a taxonomy of malfunctions. Here are the major classes
- of malfunctions, and which switches can isolate them:
-
- - Electrical faults, e.g. a short in the cable or some sort of
- fault that distorts the signal. All types of switch will confine
- this to one side of the switch: repeater, buffered repeater,
- bridge, gateway. These are worth protecting against, although
- their frequency depends upon how often your cables are changed or
- disturbed. It is rare for this sort of fault to occur without
- some disturbance of the cable.
-
- - Transceiver and controller problems that general signals that are
- valid electrically but nevertheless incorrect (e.g. a continuous,
- infinitely long packet, spurious collisions, never dropping
- carrier). All except the simple repeater will confine this:
- buffered repeater, bridge, gateway. (Such problems are not very
- common.)
-
- - Software malfunctions that lead to excessive traffic between
- particular hosts (i.e. not broadcasts). Bridges and gateways
- will isolate these. (This type of failure is fairly rare. Most
- software and protocol problems generate broadcasts.)
-
- - Software malfunctions that lead to excessive broadcast traffic.
- Gateways will isolate these. Generally bridges will not, because
- they must pass broadcasts. Bridges with user-settable filtering
- can protect against some broadcast malfunctions. However in
- general bridges must pass ARP, and most broadcast malfunctions
- involve ARP. This problem is not severe on single-vendor
- networks where software is under careful control. However
- research sites generally see problems of this sort regularly.
- 35
-
-
-
- Traffic isolation is provided by bridges and gateways. The most basic
- decision is how many computers can be put onto a network without
- overloading its capacity. This requires knowledge of the capacity of
- the network, but also how the hosts will use it. For example, an
- Ethernet may support hundreds of systems if all the network is used
- for is remote logins and an occasional file transfer. However if the
- computers are diskless, and use the network for swapping, an Ethernet
- will support between 10 and 40, depending upon their speeds and I/O
- rates.
-
- When you have to put more computers onto a network than it can handle,
- you split it into several networks and put some sort of switch between
- them. If you do the split correctly, most of the traffic will be
- between machines on the same piece. This means putting clients on the
- same network as their servers, putting terminal servers on the same
- network as the hosts that they access most commonly, etc.
-
- Bridges and gateways generally provide similar degrees of traffic
- isolation. In both cases, only traffic bound for hosts on the other
- side of the switch is passed. However see the discussion on routing.
-
-
-
- 5.3.2 Performance
-
-
- This is becoming less of an issue as time goes on, since the
- technology is improving. Generally repeaters can handle the full
- bandwidth of the network. (By their very nature, a simple repeater
- must be able to do so.) Bridges and gateways often have performance
- limitations of various sorts. Bridges have two numbers of interest:
- packet scanning rate and throughput. As explained above, a bridge
- must look at every packet on the network, even ones that it does not
- forward. The number of packets per second that it can scan in this
- way is the packet scanning rate. Throughput applies to both bridges
- and gateways. This is the rate at which they can forward traffic.
- Generally this depends upon packet size. Normally the number of
- packets per second that a unit can handle will be greater for short
- packets than long ones. Early models of bridge varied from a few
- hundred packets per second to around 7000. The higher speeds are for
- equipment that uses special-purpose hardware to speed up the process
- of scanning packets. First-generation gateways varied from a few
- hundred packets per second to 1000 or more. However second-generation
- gateways are now available, using special-purpose hardware of the same
- sophistication as that used by bridges. They can handle on the order
- of 10000 packets per second. Thus at the moment high-performance
- bridges and gateways can switch most of the bandwidth of an Ethernet.
- This means that performance should no longer be a basis for choosing
- between types of switch. However within a given type of switch, there
- are still specific models with higher or lower capacity.
-
- Unfortunately there is no single number on which you can base
- performance estimates. The figure most commonly quoted is packets per
- second. Be aware that most vendors count a packet only once as it
- goes through a gateway, but that one prominent vendor counts packets
- 36
-
-
-
- twice. Thus their switching rates must be deflated by a factor of 2.
- Also, when comparing numbers make sure that they are for packets of
- the same size. A simple performance model is
-
- processing time = switching time + packet size * time per byte
-
- That is, the time to switch a packet is normally a constant switching
- time, representing interrupt latency, header processing, routing table
- lookup, etc., plus a component proportional to packet size,
- representing the time needed to do any packet copying. One reasonable
- approach to reporting performance is to give packets per second for
- minimum and maximum size packets. Another is to report limiting
- switching speed in packets per second and throughput in bytes per
- second, i.e. the two terms of the equation above.
-
-
-
- 5.3.3 Routing
-
-
- Routing refers to the technology used to decide where to send a packet
- next. Of course for a repeater this is not an issue, since repeaters
- forward every packet.
-
- Bridges are almost always constructed with exactly two interfaces.
- Thus routing turns into two decisions: (1) whether the bridge should
- function at all, and (2) whether it should forward any particular
- packet. The second decision is usually based on a table of MAC-level
- addresses. As described above, this is built up by scanning traffic
- on both sides of the bridge. The goal is to forward those packets
- whose destination is on the other side of the bridge. This algorithm
- requires that the network configuration have no loops or redundant
- lines. Less sophisticated bridges leave this up to the system
- designer. With these bridges, you must set up your network so that
- there are no loops in it. More sophisticated bridges allow arbitrary
- topology, but disable links until no loops remain. This provides
- extra reliability. If a link fails, an alternative link will be
- turned on automatically. Bridges that work this way have protocol
- that allows them to detect when a unit must be disabled or reenabled,
- so that at any instant the set of active links forms a "spanning
- tree". If you require the extra reliability of redundant links, make
- sure that the bridges you use can disable and enable themselves in
- this way. There is currently no official standard for the protocol
- used among bridges, although there is a standard in the proposal
- stage. If you buy bridges from more than one vendor, make sure that
- their spanning-tree protocols will interoperate.
-
- Gateways generally allow arbitrary network topologies, including loops
- and redundant links. Because gateways may have more than two
- interfaces, they must decide not only when to forward a packet, but
- where to send it next. They do this by maintaining a model of the
- entire network topology. Different routing techniques maintain models
- of greater or lesser complexity, and use the data with varying degrees
- of sophistication. Gateways that handle TCP/IP should generally
- support the two Internet standard routing protocols: RIP (Routing
- 37
-
-
-
- Information Protocol) and EGP (External Gateway Protocol). EGP is a
- special-purpose protocol for use in networks where there is a backbone
- under a separate administration. It allows exchange of reachability
- information with the backbone in a controlled way. If you are a
- member of such a network, your gateway must support EGP. This is
- becoming common enough that it is probably a good idea to make sure
- that all gateways support EGP.
-
- RIP is a protocol designed to handle routing within small to moderate
- size networks, where line speeds do not differ radically. Its primary
- limitations are:
-
- - It cannot be used with networks where any path goes through more
- than 15 gateways. This range may be further reduced if you use
- an optional feature for giving a slow line a weight larger than
- one.
-
- - It cannot share traffic between parallel lines (although some
- implementations allow this if the lines are between the same pair
- of gateways).
-
- - It cannot adapt to changes in network load.
-
- - It is not well suited to situations where there are alternative
- routes through lines of very different speeds.
-
- - It may not be stable in networks where lines or gateways change a
- lot.
-
- Some vendors supply proprietary modifications to RIP that improve its
- operation with EGP or increase the maximum path length beyond 15, but
- do not otherwise modify it very much. If you expect your network to
- involve gateways from more than one vendor, you should generally
- require that all of them support RIP, since this is the only routing
- protocol that is generally available. If you expect to use a more
- sophisticated protocol in addition, the gateways must have some
- ability to translate between their own protocol and RIP. However for
- very large or complex networks, there may be no choice but to use some
- other protocol throughout.
-
- More sophisticated routing protocols are possible. The primary ones
- being considered today are cisco System's IGRP, and protocols based on
- the SPF (shortest-path first) algorithms. In general these protocols
- are designed for larger or more complex networks. They are in general
- stable under a wider variety of conditions, and they can handle
- arbitrary combinations of line type and speed. Some of them allow you
- to split traffic among parallel paths, to get better overall
- throughput. Some newer technologies may allow the network to adjust
- to take into account paths that are overloaded. However at the moment
- I do not know of any commercial gateway that does this. (There are
- very serious problems with maintaining stable routing when this is
- done.) There are enough variations among routing technology, and it is
- changing rapidly enough, that you should discuss your proposed network
- topology in detail with all of the vendors that you are considering.
- Make sure that their technology can handle your topology, and can
- 38
-
-
-
- support any special requirements that you have for sharing traffic
- among parallel lines, and for adjusting topology to take into account
- failures. In the long run, we expect one or more of these newer
- routing protocols to attain the status of a standard, at least on a de
- facto basis. However at the moment, there is no generally implemented
- routing technology other than RIP.
-
- One additional routing topic to consider is policy-based routing. In
- general routing protocols are designed to find the shortest or fastest
- possible path for every packet. In some cases, this is not desired.
- For reasons of security, cost accountability, etc., you may wish to
- limit certain paths to certain uses. Most gateways now have some
- ability to control the spread of routing information so as to give you
- some administrative control over the way routes are used. Different
- gateways vary in the degree of control that they support. Make sure
- that you discuss any requirements that you have for control with all
- prospective gateway vendors.
-
-
-
- 5.3.4 Network management
-
-
- Network management covers a wide variety of topics. In general it
- includes gathering statistical data and status information about parts
- of your network, and taking action as necessary to deal with failures
- and other changes. There are several things that a switch can do to
- make this process easier. The most basic is that it should have a way
- of gathering and reporting statistics. These should include various
- sorts of packet counts, as well as counts of errors of various kinds.
- This data is likely to be most detailed in a gateway, since the
- gateway classifies packets using the protocols, and may even respond
- to certain types of packet itself. However bridges and even buffered
- repeaters can certainly have counts of packets forwarded, interface
- errors, etc. It should be possible to collect this data from a
- central monitoring point.
-
- There is now an official Internet approach to network monitoring. The
- first stages use a related set of protocols, SGMP and SNMP. Both of
- these protocols are designed to allow you to collect information and
- to make changes in configuration parameters for gateways and other
- entities on your network. You can run the matching interface programs
- on any host in your network. SGMP is now available for several
- commercial gateways, as well as for Unix systems that are acting as
- gateways. There is a limited set of information which any SGMP
- implementation is required to supply, as well as a uniform mechanism
- for vendors to add information of their own. By late 1988, the second
- generation of this protocol, SNMP, should be in service. This is a
- slightly more sophisticated protocol. It has with it a more complete
- set of information that can be monitored, called the MIB (Management
- Information Base). Unlike the somewhat ad hoc collection of SGMP
- variables, the MIB is the result of numerous committee deliberations
- involving a number of vendors and users. Eventually it is expected
- that there will be a TCP/IP equivalent of CMIS, the ISO network
- monitoring service. However CMIS, and its protocols, CMIP, are not
- 39
-
-
-
- yet official ISO standards, so they are still in the experimental
- stages.
-
- In general terms all of these protocols accomplish the same thing:
- They allow you to collect criticial information in a uniform way from
- all vendors' equipment. You send commands as UDP datagrams from a
- network management program running on some host in your network.
- Generally the interaction is fairly simple, with a single pair of
- datagrams exchanged: a command and a response. At the moment security
- is fairly simple. It is possible to require what amounts to a
- password in the command. (In SGMP it is referred to as a "session
- name", rather than a password.) More elaborate, encryption-based
- security is being developed.
-
- You will probably want to configure the network management tools at
- your disposal to do several different things. For short-term network
- monitoring, you will want to keep track of switches crashing or being
- taken down for maintenance, and of failure of communications lines and
- other hardware. It is possible to configurate SGMP and SNMP to issue
- "traps" (unsolited messages) to a specified host or list of hosts when
- some of these critical events occur (e.g. lines up and down). However
- it is unrealistic to expect a switch to notify you when it crashes.
- It is also possible for trap messages to be lost due to network
- failure or overload. Thus you should also poll your switches
- regularly to gather information. Various displays are available,
- including a map of your network where items change color as their
- status changes, and running "strip charts" that show packet rates and
- other items through selected switches. This software is still in its
- early stages, so you should expect to see a lot of change here.
- However at the very least you should expect to be notified in some way
- of failures. You may also want to be able to take actions to
- reconfigure the system in response to failures, although security
- issues make some mangers nervous about doing that through the existing
- management protocols.
-
- The second type of monitoring you are likely to want to do is to
- collect information for use in periodic reports on network utilization
- and performance. For this, you need to sample each switch
- perodically, and retrieve numbers of interest. At Rutgers we sample
- hourly, and get the number of packets forwarded for IP and DECnet, a
- count of reloads, and various error counts. These are reported daily
- in some detail. Monthly summaries are produced giving traffic through
- each gateway, and a few key error rates chosen to indicate a gateway
- that is being overloaded (packets dropped in input and output).
-
- It should be possible to use monitoring techniques of this kind with
- most types of switch. At the moment, simple repeaters do not report
- any statistics. Since they do not generally have processors in them,
- doing so would cause a major increase in their cost. However it
- should be possible to do network management for buffered repeaters,
- bridges, and gateways. Gateways are the most likely to contain
- sophisticated network management software. Most gateway vendors that
- handle TCP/IP are expected to implement the monitoring protocols
- described above. Many bridge vendors make some provisions for
- collecting performance data. Since bridges are not protocol-specific,
- 40
-
-
-
- most of them do not have the software necessary to implement
- TCP/IP-based network management protocols. In some cases, monitoring
- can be done only by typing commands to a directly-attached console.
- (We have seen one case where it is necessary to take the bridge out of
- service to gather this data.) In other cases, it is possible to gather
- data via the network, but the monitoring protocol is ad hoc or even
- proprietary.
-
- Except for very small networks, you should probably insist that all of
- the devices on your network collect statistics and provide some way of
- querying them remotely. In the long run, you can expect the most
- software to be available for standard protocols such as SGMP/SNMP and
- CMIS. However proprietary monitoring tools may be sufficient as long
- as they work with all of the equipment that you have.
-
-
-
- 5.3.5 A final evaluation
-
-
- Here is a summary of the places where each kind of switch technology
- is normally used:
-
- - Repeaters are normally confined to a single building. Since they
- provide no traffic isolation, you must make sure that the entire
- set of networks connected by repeaters can carry the traffic from
- all of the computers on it. Since they generally provide no
- network monitoring tools, you will not want to use repeaters for
- a link that is likely to fail.
-
- - Bridges and gateways should be placed sufficiently frequently to
- break your network into pieces for which the traffic volume is
- manageable. You may want to place bridges or gateways in places
- where traffic would not require them for network monitoring
- reasons.
-
- - Because bridges must pass broadcast packets, there is a limit to
- the size network you can construct using them. It is probably a
- good idea to limit the network connected by bridges to a hundred
- systems or so. This number can be increased somewhat for bridges
- with good facilities for filtering.
-
- - Because certain kinds of network misbehavior will be passed,
- bridges should be used only among portions of the network where a
- single group is responsible for diagnosing problems. You have to
- be crazy to use a bridge between networks owned by different
- organizations. Portions of your network where experiments are
- being done in network technology should always be isolated from
- the rest of the network by gateways.
-
- - For many applications it is more important to choose a product
- with the right combination of performance, network management
- tools, and other features than to make the decision between
- bridges and gateways.
-
- 41
-
-
-
- @section(Configuring Gateways)
-
- This section deals with configuration issues that are specific to
- gateways. Gateways than handle TCP/IP are themselves Internet hosts.
- Thus the discussions above on configuring addresses and routing
- information apply to gateways as well as to hosts. The exact way you
- configure a gateway will depend upon the vendor. In some cases, you
- edit files stored on a disk in the gateway itself. However for
- reliability reasons most gateways do not have disks of their own. For
- them, configuration information is stored in non-volatile memory or in
- configuration files that are uploaded from one or more hosts on the
- network.
-
- At a minimum, configuration involves specifying the Internet address
- and address mask for each interface, and enabling an appropriate
- routing protocol. However generally a few other options are
- desirable. There are often parameters in addition to the Internet
- address that you should set for each interface.
-
- One important parameter is the broadcast address. As explained above,
- older software may react badly when broadcasts are sent using the new
- standard broadcast address. For this reason, some vendors allow you
- to choose a broadcast address to be used on each interface. It should
- be set using your knowledge of what computers are on each of the
- networks. In general if the computers follow current standards, a
- broadcast address of 255.255.255.255 should be used. However older
- implementations may behave better with other addresses, particularly
- the address that uses zeros for the host number. (For the network
- 128.6 this would be 128.6.0.0. For compatibility with software that
- does not implement subnets, you would use 128.6.0.0 as the broadcast
- address even for a subnet such as 128.6.4.) You should watch your
- network with a network monitor and see the results of several
- different broadcast address choices. If you make a bad choice, every
- time the gateway sends a routing update broadcast, many machines on
- your network will respond with ARP's or ICMP errors. Note that when
- you change the broadcast address in the gateway, you may need to
- change it on the individual computers as well. Generally the idea is
- to change the address on the systems that you can configure to give
- behavior that is compatible with systems that you can't configure.
-
- Other interface parameters may be necessary to deal with peculiarities
- of the network it is connected to. For example, many gateways test
- Ethernet interfaces to make sure that the cable is connected and the
- transceiver is working correctly. Some of these tests will not work
- properly with the older Ethernet version 1 transceivers. If you are
- using such a transceiver, you would have to disable this keepalive
- testing. Similarly, gateways connected by a serial line normally do
- regular testing to make sure that the line is still working. There
- can be situations where this needs to be disabled.
-
- Often you will have to enable features of the software that you want
- to use. For example, it is often necessary to turn on the network
- management protocol explicitly, and to give it the name or address of
- a host that is running software to accept traps (error messages).
-
- 42
-
-
-
- Most gateways have options that relate to security. At a minimum,
- this may include setting password for making changes remotely (and the
- "session name" for SGMP). If you need to control access to certain
- parts of your network, you will also need to define access control
- lists or whatever other mechanism your gateway uses.
-
- Gateways that load configuration information over the network present
- special issues. When such a gateway boots, it sends broadcast
- requests of various kinds, attempting to find its Internet address and
- then to load configuration information. Thus it is necessary to make
- sure that there is some computer that is prepared to respond to these
- requests. In some cases, this is a dedicated micro running special
- software. In other cases, generic software is available that can run
- on a variety of machines. You should consult your vendor to make sure
- that this can be arranged. For reliability reasons, you should make
- sure that there is more than one host with the information and
- programs that your gateways need. In some cases you will have to
- maintain several different files. For example, the gateways used at
- Rutgers use a program called "bootp" to supply their Internet address,
- and they then load the code and configuration information using TFTP.
- This means that we have to maintain a file for bootp that contains
- Ethernet and Internet addresses for each gateway, and a set of files
- containing other configuration information for each gateway. If your
- network is large, it is worth taking some trouble to make sure that
- this information remains consistent. We keep master copies of all of
- the configuration information on a single computer, and distribute it
- to other systems when it changes, using the Unix utilities make and
- rdist. If your gateway has an option to store configuration
- information in non-volatile memory, you will eliminate some of these
- logistical headaches. However this presents its own problems. The
- contents of non-volatile memory should be backed up in some central
- location. It will also be harder for network management personnel to
- review configuration information if it is distributed among the
- gateways.
-
- Starting a gateway is particularly challenging if it loads
- configuration information from a distant portion of the network.
- Gateways that expect to take configuration information from the
- network generally issue broadcast requests on all of the networks to
- which they are connected. If there is a computer on one of those
- networks that is prepared to respond to the request, things are
- straightforward. However some gateways may be in remote locations
- where there are no nearby computer systems that can support the
- necessary protocols. In this case, it is necessary to arrange for the
- requests to be routed back to network where there are appropriate
- computers. This requires what is strictly speaking a violation of the
- basic design philosophy for gateways. Generally a gateway should not
- allow broadcasts from one network to pass through to an adjacent
- network. In order to allow a gateway to get information from a
- computer on a different network, at least one of the gateways in
- between will have to be configured to pass the particular class of
- broadcasts used to retrieve this information. If you have this sort
- of configuration, you should test the loading process regularly. It
- is not unusual to find that gateways do not come up after a power
- failure because someone changed the configuration of another gateway
- 43
-
-
-
- and made it impossible to load some necessary information.
-
-
-
- 5.4 Configuring routing for gateways
-
-
- The final topic to be considered is configuring routing. This is more
- complex for a gateway than for a normal host. Most Internet experts
- recommend that routing be left to the gateways. Thus hosts may simply
- have a default route that points to the nearest gateway. Of course
- the gateways themselves can't get by with this. They need to have
- complete routing tables.
-
- In order to understand how to configure a gateway, we have to look in
- a bit more detail at how gateways communicate routes. When you first
- turn on a gateway, the only networks it knows about are the ones that
- are directly connected to it. (They are specified by the
- configuration information.) In order to find out how to get to more
- distant parts of the network, it engages in some sort of "routing
- protocol". A routing protocol is simply a protocol that allows each
- gateway to advertise which networks it can get to, and to spread that
- information from one gateway to the next. Eventually every gateway
- should know how to get to every network. There are different styles
- of routing protocol. In one common type, gateways talk only to nearby
- gateways. In another type, every gateway builds up a database
- describing every other gateway in the system. However all of the
- protocols have some way for each gateway in the system to find out how
- to get to every destination.
-
- A metric is some number or set of numbers that can be used to compare
- routes. The routing table is constructed by gathering information
- from other gateways. If two other gateways claim to be able to get to
- the same destination, there must be some way of deciding which one to
- use. The metric is used to make that decision. Metrics all indicate
- in some general sense the "cost" of a route. This may be a cost in
- dollars of sending packets over that route, the delay in milliseconds,
- or some other measure. The simplest metric is just a count of the
- number of gateways along the path. This is referred to as a "hop
- count". Generally this metric information is set in the gateway
- configuration files, or is derived from information appearing there.
-
- At a minimum, routing configuration is likely to consist of a command
- to enable the routing protocol that you want to use. Most vendors
- will have a prefered routing protocol. Unless you have some reason to
- choose another, you should use that. The normal reason for choosing
- another protocol is for compatibility with other kinds of gateway.
- For example, your network may be connected to a national backbone
- network that requires you to use EGP (exterior gateway protocol) to
- communicate routes with it. EGP is only appropriate for that specific
- case. You should not use EGP within your own network, but you may
- need to use it in addition to your regular routing protocol to
- communicate with a national network. If your own network has several
- different types of gateway, then you may need to pick a routing
- protocol that all of them support. At the moment, this is likely to
- 44
-
-
-
- be RIP (Routing Information Protocol). Depending upon the complexity
- of your network, you could use RIP throughout it, or use a more
- sophisticated protocol among the gateways that support it, and use RIP
- only at the boundary between gateways from different vendors.
-
- Assuming that you have chosen a routing protocol and turned it on,
- there are some additional decisions that you may need to make. One of
- the more basic configuration options has to do with supplying metric
- information. As indicated above, metrics are numbers which are used
- to decide which route is the best. Unsophisticated routing protocols,
- e.g. RIP, normally just count hops. So a route that passes through 2
- gateways would be considered better than one that passes through 3.
- Of course if the latter route used 1.5Mbps lines and the former 9600
- bps lines, this would be the wrong decision. Thus most routing
- protocols allow you to set parameters to take this sort of thing into
- account. With RIP, you would arrange to treat the 9600 bps line as if
- it were several hops. You would increase the effective hop count
- until the better route was chosen. More sophisticated protocols may
- take the bit rate of the line into account automatically. However you
- should be on the lookout for configuration parameters that need to be
- set. Generally these parameters will be associated with the
- particular interface. For example, with RIP you would have to set a
- metric value for the interface connected to the 9600 bps line. With
- protocols that are based on bit rate, you might need to specify the
- speed of each line (if the gateway cannot figure it out
- automatically).
-
- Most routing protocols are designed to let each gateway learn the
- topology of the entire network, and to choose the best possible route
- for each packet. In some cases you may not want to use the "best"
- route. You may want traffic to stay out of a certain portion of the
- network for security or cost reasons. One way to institute such
- controls is by specifying routing options. These options are likely
- to be different for different vendors. But the basic strategy is that
- if the rest of the network doesn't know about a route, it won't be
- used. So controls normally take the form of limiting the spread of
- information about routes whose use you want to control.
-
- Note that there are ways for the user to override the routing
- decisions made by your gateways. If you really need to control access
- to a certain network, you will have to do two separate things: Use
- routing controls to make sure that the gateways use only the routes
- you want them to. But also use access control lists on the gateways
- that are adjacent to the sensitive networks. These two mechanisms act
- at different levels. The routing controls affect what happens to most
- packets: those where the user has not specified routing manually.
- Your routing mechanism must be set up to choose an acceptable route
- for them. The access control list provides an additional limitation
- which prevents users from supplying their own routing and bypassing
- your controls.
-
- For reliability and security reasons, there may also be controls to
- allow you to list the gateways from which you will accept information.
- It may also be possible to rank gateways by priority. For example,
- you might decide to listen to routes from within your own organization
- 45
-
-
-
- before routes from other organizations or other parts of the
- organization. This would have the effect of having traffic use
- internal routes in preference to external ones, even if the external
- ones appear to be better.
-
- If you use several different routing protocols, you will probably have
- some decisions to make regarding how much information to pass among
- them. Since multiple routing protocols are often associated with
- multiple organizations, you must be sure to make these decisions in
- consultation with management of all of the relevant networks.
- Decisions that you make may have consequences for the other network
- which are not immediately obvious. You might think it would be best
- to configure the gateway so that everything it knows is passed on by
- all routing protocols. However here are some reasons why you may not
- want to do so:
-
- - The metrics used by different routing protocols may not be
- comparable. If you are connected to two different external
- networks, you want to specify that one should always be used in
- preference to the other, or that the nearest one should be used,
- rather than attempting to compare metric information received
- from the two networks to see which has the better route.
-
- - EGP is particularly sensitive, because the EGP protocol cannot
- handle loops. Thus there are strict rules governing what
- information may be communicated to a backbone that uses EGP. In
- situations where EGP is being used, management of the backbone
- network should help you configure your routing.
-
- - If you have slow lines in your network (9600 bps or slower), you
- may prefer not to send a complete routing table throughout the
- network. If you are connected to an external network, you may
- prefer to treat it as a default route, rather than to inject all
- of its routing information into your routing protocol.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 46
-